Woocommerce Order Delete Hook Callback wird nicht aufgerufen
Lesezeit: 2 Minuten
Benutzer1
Ich versuche, eine Funktion mit dem Löschen von Bestellungen zu verknüpfen (wenn auf der Admin-Seite auf dauerhaftes Löschen geklickt wird), aber aus irgendeinem Grund wird die Funktion nicht aufgerufen. Mein Code sieht in etwa so aus
add_action('woocommerce_before_delete_order_item', function($id) {
$order = new WC_Order($id);
//do some stuff with order meta data
}, 10, 1);
Ich habe versucht, eine Ausnahme innerhalb der Funktion auszulösen, aber es ist kein Fehler aufgetreten. Kann jemand helfen?
Versuchen Sie, sich einzuklinken, wenn eine Bestellung gelöscht wird oder ein Artikel in einer Bestellung gelöscht wird? Sie schließen sich der Elementlöschaktion an.
– Andy
28. Juni 2016 um 14:11 Uhr
Ich versuche, die Funktion einzuhaken, nachdem nach Abschluss der Bestellung auf dauerhaftes Löschen geklickt wurde
– Benutzer1
28. Juni 2016 um 14:13 Uhr
Sie möchten die Hook-on-Order-Löschfunktion anwenden?
– mujuonly
28. Juni 2016 um 14:22 Uhr
Andy
Das woocommerce_before_delete_order_item Die Aktion wird jedes Mal ausgeführt, wenn ein Artikel aus einer Bestellung gelöscht wird, nicht jedes Mal, wenn eine Bestellung gelöscht wird. Sie müssen die verwenden before_delete_post Haken:
add_action('before_delete_post', function($id) {
$post_type = get_post_type($id);
if ($post_type !== 'shop_order') {
return;
}
$order = new WC_Order($id);
//do some stuff with order meta data
}, 10, 1);
Je nachdem, was Sie tun möchten, möchten Sie möglicherweise zu einem früheren Zeitpunkt in die Aktion einsteigen, indem Sie das Prioritätsargument von ändern 10 zu etwas kleinerem.
Es gibt auch die woocommerce_delete_order Haken (Kann nicht sagen, ob es neu ist, aber ich wollte es für andere Leute erwähnen, die das lesen)
danke für diese Informationen, in manchen Fällen kann es sinnvoll sein, nur Sachen zu machen nach dem Die Bestellung wird gelöscht
– Petschko
8. Februar 2021 um 12:51 Uhr
wenn Sie beabsichtigen, die zu verwenden Wechseln Sie zu Thrash Auf der Bestelldetailseite im Admin-Dashboard können Sie die wp_trash_post. Das before_delete_post hat bei mir nicht funktioniert.
function onOrderDelete($orderId){
$post_type = get_post_type($orderId);
if($post_type !== 'shop_order') {
return;
}
$order = wc_get_order($orderId);
// do whatever with $order
}
add_action('wp_trash_post', 'onOrderDelete', 10, 1);
function restrict_post_deletion($post_ID){
$type = get_post_type($post_ID);
if($type == 'shop_order'){
$order = new WC_Order($post_ID);
//do some stuff with order data
}
}
add_action('wp_trash_post', 'restrict_post_deletion', 10, 1);
add_action('before_delete_post', 'restrict_post_deletion', 10, 1);
Probieren Sie dieses Code-Snippet aus
14378600cookie-checkWoocommerce Order Delete Hook Callback wird nicht aufgerufenyes
Versuchen Sie, sich einzuklinken, wenn eine Bestellung gelöscht wird oder ein Artikel in einer Bestellung gelöscht wird? Sie schließen sich der Elementlöschaktion an.
– Andy
28. Juni 2016 um 14:11 Uhr
Ich versuche, die Funktion einzuhaken, nachdem nach Abschluss der Bestellung auf dauerhaftes Löschen geklickt wurde
– Benutzer1
28. Juni 2016 um 14:13 Uhr
Sie möchten die Hook-on-Order-Löschfunktion anwenden?
– mujuonly
28. Juni 2016 um 14:22 Uhr