30

Web サイト用のカスタム プラグインを作成しています。

このプラグインの一部ではwp_postmeta、注文ごとに追加のメタを保存する必要があります。

これをプラグインのクラスに追加しました:

add_action ('woocommerce_before_checkout_process', array( &$this, 'add_item_meta', 10, 2) );

そして、これはadd_item_meta()機能です:

function add_item_meta( $item_id, $values ) {
  wc_add_order_item_meta($item_id, '_has_event', 'yes' );
}

この関数は完全ではありませんが、このコードでは何も起こりません。別のフックを使用する必要があると思いますが、適切なフックが見つかりません。

誰もこれについて何か知っていますか?

また、別の問題があり$item_idます。これは woocommerce グローバル変数ですが、プラグインで見ることができません!

つまり、プラグインなどからこの変数にアクセスできないということです!

4

4 に答える 4

5

答えは: woocommerce_checkout_update_order_metaadd_action に使用update_post_meta()する必要があり、注文に追加のメタを追加するために使用する必要があります

    function add_item_meta( $order_id ) {
            //global $woocommerce;
            update_post_meta( $order_id, '_has_event', 'yes' );
        } 
于 2014-09-03T06:56:33.247 に答える