Dans mon plugin personnalisé (fonctionnant dans WooCommerce 2.6.x et 3.x), je dois obtenir l'ID de la commande lors de la création d'une nouvelle commande. J'ai essayé différents hooks mais ils ne fonctionnent que lorsque le client crée une commande et non quand une commande est créée depuis admin.WooCommerce crochet pour la création de commande de l'administrateur
J'ai essayé:
- woocommerce_new_order
- woocommerce_thankyou
- woocommerce_checkout_order_processed
- woocommerce_checkout_update_order_meta
Mise à jour
Enfin je ceci:
add_action('wp_insert_post', function($order_id)
{
if(!did_action('woocommerce_checkout_order_processed')
&& get_post_type($order_id) == 'shop_order'
&& validate_order($order_id))
{
order_action($order_id);
}
});
où validate_order est:
function validate_order($order_id)
{
$order = new \WC_Order($order_id);
$user_meta = get_user_meta($order->get_user_id());
if($user_meta)
return true;
return false;
}
Merci à validate_order l'action n'est pas exécutée lorsque vous commencez à créer l'ordre. J'utilise !did_action('woocommerce_checkout_order_processed')
car je ne veux pas que l'action soit exécutée si la commande est créée par un client (j'ai une action spécifique pour cela, en utilisant woocommerce_checkout_order_processed
).
Nous espérons que vous l'obtiendrez: 'WC() -> order-> id;' – stevenkellow