Ich möchte alle Produkte, die einer Bestellung im Admin hinzugefügt wurden, durchlaufen, bevor die Bestellung tatsächlich übermittelt wird. Bisher haben die einzigen WooCommerce-Hooks, die ich gefunden habe, nur den Zugriff auf die Produktelemente einzeln ermöglicht.
Ich suchte nach einem Haken, der ausgelöst wird, wenn ein Benutzer auf die Schaltfläche „Neu berechnen“ klickt, aber tatsächlich könnte er ausgelöst werden, wenn ein Benutzer ein Produkt, eine Steuer, eine Versandart usw. hinzufügt. Ich muss nur alle Artikel durchlaufen, die der Bestellung bisher hinzugefügt wurden .
Im Moment benutze ich woocommerce_admin_order_item_values
Hook, aber es ist eine in sich geschlossene Schleife, sodass ich nicht alle meine ‘$item[‘product_id’]’ zusammen.
function action_woocommerce_admin_order_item_values( $null, $item, $absint ) {
$item_ids = array($item['product_id']);
}
add_action( 'woocommerce_admin_order_item_values', 'action_woocommerce_admin_order_item_values', 10, 3 );
Sie können auch verwenden –
woocommerce_before_order_itemmeta
Hook, aber dies greift nur einzeln auf jedes Element zu, während ich jedes Element in der Zusammenfassung durchlaufen muss.
Es gibt eine Reihe von Hooks, die von WooCommerce bereitgestellt werden, wenn Sie auf klicken Neu berechnen Taste. Ich liste hier diese Haken auf und es hängt von Ihnen ab, ob Sie unter ihnen entsprechend Ihren Anforderungen auswählen.
$order = WC_Order-Objekt
add_action("woocommerce_order_before_calculate_taxes", "custom_order_before_calculate_taxes", 10, 2);
function custom_order_before_calculate_taxes($args, $order) {
// Do something
}
add_action("woocommerce_order_item_after_calculate_taxes", "custom_order_item_after_calculate_taxes", 10, 2);
function custom_order_item_after_calculate_taxes($order, $calculate_tax_for) {
// Do something
}
add_action("woocommerce_before_order_object_save", "custom_before_order_object_save", 10, 2);
function custom_before_order_object_save($order, $data_store) {
// Do something
}
add_action( 'woocommerce_order_before_calculate_totals', "custom_order_before_calculate_totals", 10, 2);
function custom_order_before_calculate_totals($and_taxes, $order ) {
// Do something
}
add_action( 'woocommerce_order_after_calculate_totals', "custom_order_after_calculate_totals", 10, 2);
function custom_order_after_calculate_totals($and_taxes, $order) {
//Do something
}
add_filter("woocommerce_order_is_vat_exempt", function(){
return $boolean;
});
add_filter("woocommerce_order_get_total", "custom_order_get_total", 10, 2);
function custom_order_get_total($value, $order) {
//do somethig
return $value;
}