woocommerce_order_status_completed
Εκτελείται όταν η κατάσταση μιας παραγγελίας γίνει Ολοκληρώθηκε. Για εργασίες που πρέπει να γίνουν αφού εκτελεστεί η παραγγελία.
Πότε εκτελείται
Είναι η μορφή 'completed' της δυναμικής ενέργειας woocommerce_order_status_{status}. Το WooCommerce την εκτελεί όταν μια παραγγελία αποθηκεύεται με νέα κατάσταση Ολοκληρώθηκε, είτε αυτό γίνει στη διαχείριση, είτε μαζικά, είτε από τρόπο πληρωμής ή plugin.
Εκτελείται αφού αποθηκευτεί η νέα κατάσταση και πριν προστεθεί η σημείωση παραγγελίας για την αλλαγή. Τη χρησιμοποιεί και το ίδιο το WooCommerce, για παράδειγμα για να στείλει το email ολοκληρωμένης παραγγελίας.
Παράμετροι
$order_idint |
ID της παραγγελίας. |
|---|---|
$orderWC_Order |
Το αντικείμενο της παραγγελίας. |
$status_transitionarray |
Στοιχεία της αλλαγής κατάστασης: 'from', 'to', 'note' και 'manual'. |
Παράδειγμα: Μέτρηση ολοκληρωμένων παραγγελιών ανά πελάτη
add_action( 'woocommerce_order_status_completed', function ( $order_id, $order ) {
$customer_id = $order->get_customer_id();
if ( ! $customer_id || $order->get_meta( '_my_completion_counted' ) ) {
return;
}
$count = (int) get_user_meta( $customer_id, '_my_completed_orders', true );
update_user_meta( $customer_id, '_my_completed_orders', $count + 1 );
$order->update_meta_data( '_my_completion_counted', 'yes' );
$order->save_meta_data();
}, 10, 2 );
Καλό να ξέρετε
- Εκτελείται ξανά αν μια παραγγελία φύγει από την κατάσταση Ολοκληρώθηκε και επιστρέψει, οπότε προστατέψτε τις εργασίες μίας φοράς με meta της παραγγελίας, όπως στο παράδειγμα.
- Οι παραγγελίες επισκεπτών δεν έχουν ID πελάτη, οπότε ελέγξτε το πριν αποθηκεύσετε κάτι σε χρήστη.
- Όταν προσθέτετε την ενέργεια, ορίστε 2 ή 3 αποδεκτά ορίσματα, αλλιώς θα πάρετε μόνο το $order_id.