Maison >développement back-end >tutoriel php >Comment remplacer le hook obsolète « woocommerce_add_order_item_meta » pour les méta personnalisées sur les articles de commande ?

Comment remplacer le hook obsolète « woocommerce_add_order_item_meta » pour les méta personnalisées sur les articles de commande ?

DDD
DDDoriginal
2024-11-03 09:57:02921parcourir

How to Replace the Deprecated

Remplacement du hook obsolète "woocommerce_add_order_item_meta" pour les méta personnalisées sur les articles commandés

Dans la dernière version de WooCommerce 2.3.7, le "woocommerce_add_order_item_meta" hook a été marqué comme obsolète. Cet article vise à guider les développeurs dans le choix d'un crochet alternatif pour ajouter de manière transparente des méta personnalisées aux articles de commande.

Le crochet de remplacement : woocommerce_checkout_create_order_line_item

Le crochet de remplacement recommandé pour l'ajout de produits personnalisés. La méta pour commander des articles dans WooCommerce 3 et versions ultérieures est "woocommerce_checkout_create_order_line_item". Ce hook offre des fonctionnalités similaires au hook obsolète et possède les arguments suivants :

  • $item : une instance de la classe WC_Order_Item_Product.
  • $ cart_item_key : La clé de hachage unique pour l'article du panier.
  • $values : Un tableau contenant les données de l'article du panier.
  • $order : Une instance de l'objet WC_Order.

Utilisation du nouveau hook

Pour utiliser le hook "woocommerce_checkout_create_order_line_item", vous pouvez définir une fonction personnalisée comme la exemple ci-dessous :

<code class="php">add_action( 'woocommerce_checkout_create_order_line_item', 'custom_checkout_create_order_line_item', 20, 4 );
function custom_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {
    // Get custom data and update order item meta
    $custom_data = get_cart_item_meta( $cart_item_key, 'meta_key' );
    if ( ! empty( $custom_data ) ) {
        $item->update_meta_data( 'meta_key', $custom_data );
    }
}</code>

Cette fonction récupère une méta-valeur personnalisée de l'article du panier et met à jour la méta de l'article de commande correspondant à l'aide de la méthode update_meta_data() de la classe WC_Order_Item_Product.

Les avantages de l'utilisation du nouveau hook

Le hook "woocommerce_checkout_create_order_line_item" offre plusieurs avantages :

  • Performances améliorées : En utilisant les nouveaux setters et getters méthodes, vous pouvez accéder et mettre à jour les métadonnées sur les articles de la commande directement, améliorant ainsi les performances.
  • Accessibilité des données du panier : ce hook a accès aux données des articles du panier, ce qui facilite la récupération des valeurs personnalisées ajouté pendant le processus de paiement.
  • Cas d'utilisation étendus : vous pouvez utiliser des arguments supplémentaires comme $order pour effectuer des tâches spécifiques ou récupérer des informations supplémentaires.

Remarque : Bien que le hook "woocommerce_add_order_item_meta" soit toujours fonctionnel, il est recommandé de migrer vers le hook "woocommerce_checkout_create_order_line_item" pour une compatibilité future et une meilleure efficacité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn