web-dev-qa-db-fra.com

Comment vérifier le mode de paiement d'une commande WooCommerce par identifiant?

Je souhaite apporter des modifications si le mode de paiement choisi est COD. Sur WC_Order existant, j'ai utilisé

($order->payment_method_title == 'Cash On Delivery' ? ... : ... );

pour récupérer le titre. Mais je voudrais vérifier par rapport à l'id (cod) parce que la chaîne de titre est traduite dans différentes langues, ce qui n'en fait pas une bonne solution.

Existe-t-il un moyen de récupérer l'ID sur un WC_Order dans woocommerce?

17
belfort1

La méta-clé post pour l'ID du mode de paiement est simplement _payment_method

Donc si $order->payment_method n'a pas les méthodes magiques en place pour l'obtenir automatiquement, vous pouvez récupérer le post meta en utilisant WordPress traditionnel

get_post_meta( $order->id, '_payment_method', true );

Mise à jour pour WooCommerce 3.

$order->get_payment_method();
40
helgatheviking

Si vous avez besoin de l’objet passerelle de paiement lui-même, vous pouvez utiliser le wc_get_payment_gateway_by_order une fonction.

$payment_gateway = wc_get_payment_gateway_by_order( $order );
3
forsvunnet

2019 maintenant, si vous voulez le titre du mode de paiement, vous pouvez le faire:

$order = new WC_Order( $order_id );
$payment_title = $order->get_payment_method_title();

Cela renvoie la chaîne définie dans Woocommerce> Modes de paiement, ex: Paypal.

À votre santé.

1
ColdTuna