Änderung in den Warenkorb Button Link

Ich bin neu in WordPress und dem WooCommerce-Plugin. Ich erstelle ein Plugin, um die Verknüpfung zum Warenkorb zu ändern, wenn es eine gewünschte Materialmenge erreicht.

Wenn zum Beispiel die Lagermenge über 50 liegt, möchte ich den Link für die Sonderzahlung ändern.

Ich habe stundenlang im Internet gesucht und keine Lösung oder Idee gefunden, wie es geht.
Ist es möglich? Können Sie mir Ideen geben, wie ich es starten und umsetzen kann?

Solutions Collecting From Web of "Änderung in den Warenkorb Button Link"

Nach stundenlanger Recherche fand ich eine etwas seltsame Lösung, die irgendwie funktioniert. Ich habe den woocommerce_is_purchasble-Haken benutzt. Er übergibt 2 Parameter is_purchasable und object ( WC_Product ), die ich jetzt die Produktgesamtanzahl des Bestandes bekommen kann.

Hier ist was ich getan habe.

 function order_is_purchasable($is_purchasable, $object) { if($object->get_total_stock() > 50){ echo 'Call to purchase'; return false; }else{ return true; } } add_filter('woocommerce_is_purchasable', 'order_is_purchasable', 10, 2); 

Das Echo zeigt den Knopf an, der zu meiner gewünschten Seite für spezielle Zahlung verbindet.

Ich habe ehrlich gesagt herausgefunden, wie ich heute das meiste machen kann.

Um Ihr Ziel zu erreichen, müssen Sie sich in einen der URL-Filter einklinken , die in den Zeilen 30 – 53 von woocommerce / templates / loop / add-to-cart.php enthalten sind. Nutzen Sie die globale $ product- Variable und die get_stock_quantity- function .

Nehmen wir an, Sie machen sich nur Sorgen um einfache Produkte (keine Variationen), dann glaube ich, dass Sie damit umgehen würden:

 add_filter( 'add_to_cart_url', 'add_special_payment_link' ); function add_special_payment_link( $link ) { global $product; // If the stock quantity is less than 50, don't modify the link if( $product->get_stock_quantity() < = 50 ) { return $link; } // Write your code here to come up with the special payment link $link = 'http://wordpress.org/'; // You know, your link, not WordPress return $link; } // Since WooCommerce's JavaScript uses AJAX to add an item to a cart, we need to remove // the class 'add_to_cart_button' from the button when the stock is greater than 50 add_filter( 'add_to_cart_class', 'remove_add_to_cart_class' ); function remove_add_to_cart_class( $class ) { global $product; // If the stock quantity is less than 50, don't modify the class if( $product->get_stock_quantity() < = 50 ) { return $class; } // Specify a custom class or just return an empty string return ''; } 

Jetzt habe ich diesen Code nicht getestet (also nur auf einer Testseite verwenden), aber unter Berücksichtigung dessen, was ich heute getan habe, und vorausgesetzt, dass die function get_stock_quantity tatsächlich funktioniert, sollte dieser Code zumindest einen guten Start ermöglichen.

Lass mich wissen, wie es geht oder ob du irgendwelche Fragen an mich hast.

Das ist ähnlich wie ich die Add-In-Cart-URL in meinem “Name Your Price” -Plugin modifiziere … welches ich fast genau von einem von Mike Jolleys Premium-Plugins kopiert habe.

 add_filter( 'add_to_cart_url', 'wpa104168_tadd_special_payment_link' ); function wpa104168_tadd_special_payment_link( $link ) { global $product; // If the stock quantity is greater than 50, modify the link if( $product->get_stock_quantity() > 50 ) { $link = 'http://wordpress.org/'; $product->product_type = 'modified'; } return $link; } 

Durch das vorübergehende Ändern des product_type wird die Ajax-function zum Hinzufügen zum Warenkorb deaktiviert.