注文のアイテムメタデータとしてカスタムフィールドを追加します

マリオブルガ

woocommerce製品にカスタムフィールドを追加しました。次のコードでうまく機能しています。しかし、私の問題はそれをどのように追加するかですcart_item_data

// Display Text in Admin Panel 
add_action('woocommerce_product_options_general_product_data', 'product_custom_text_field');

function product_custom_text_field()
{

    // Custom Product Text Field ( para Tex Area -> woocommerce_wp_textarea_input )

    woocommerce_wp_text_input(
        array(
        'id'          => '_optional_text_field',
        'label'       => __('Customize title', 'woocommerce'),
        'placeholder' => '',
        'desc_tip' => 'true',
        'description' => __('Customizable title for the field that the user must fill out.', 'woocommerce')
        )
    );
}

フィールドを保存

add_action('woocommerce_process_product_meta', 'product_custom_text_field_save');

function product_custom_text_field_save($post_id)
{
    if (!empty($_POST['_optional_text_field'])) {
        update_post_meta($post_id, '_optional_text_field', esc_attr($_POST['_optional_text_field']));
    }
}

Display The Text in Product Page

    add_action('woocommerce_single_variation', 'display_text_field');

    function display_text_field()
    {
        global $post;
        if (get_post_meta($post->ID, '_optional_text_field', true)) {
            echo "<div class='titulo-c'><label>";
            echo get_post_meta($post->ID, '_optional_text_field', true);
            echo "</label></div>";
            return;
        }

        echo __('FREE LOCAL SHIPPING', 'woocommerce');
    }

これまでのところ問題cart_item_dataなく動作しているので、次のコードを使用してに追加したいのですが、動作しません。

add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 25, 2 );
function add_cart_item_data( $cart_item_meta, $product_id ) {

        $custom_data  = array() ;

        $custom_data[ "_optional_text_field"] = isset( $_POST['_optional_text_field'] ) ?  sanitize_text_field ( $_POST['_optional_text_field'] ) : "" ;

        $cart_item_meta ['custom_data']     = $custom_data ;


    return $cart_item_meta;
}

カートとチェックアウトページにカスタムデータを表示します。

add_filter( 'woocommerce_get_item_data', 'get_item_data' , 25, 2 );
function get_item_data ( $other_data, $cart_item ) {
    if ( isset( $cart_item [ 'custom_data' ] ) ) {
        $custom_data  = $cart_item [ 'custom_data' ];

        $other_data[] = array( 'name' => 'Title',
                    'display'  => $custom_data['_optional_text_field'] );

    }

    return $other_data;
}

結果として、それは私にしか見えません: Title: ________

コードを機能させるための提案をいただければ幸いです。

アルバートB

以下のようにコードに次の変更を加えます。これは機能するはずです。

/**
 * Add data to cart item
 */
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 25, 2 );
function add_cart_item_data( $cart_item_meta, $product_id ) {


        global $woocommerce;
        $mytitle_form_data = get_post_meta($product_id, '_optional_text_field', true);

        $custom_data  = array() ;

        $custom_data[ "_optional_text_field"] = $mytitle_form_data;

        $cart_item_meta ['custom_data']     = $custom_data ;

    return $cart_item_meta;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

すべての特定の注文アイテムのカスタムフィールドの合計を注文メタデータとしてWooCommerceに保存します

分類Dev

Woocommerce3でカスタムメタデータの注文としてカスタムチェックアウトフィールドを追加します

分類Dev

WooCommerce注文アイテムのカスタムフィールドの合計を新しいメタデータとして保存する

分類Dev

メタキーからWooCommerce注文アイテムのカスタムフィールド値を取得します

分類Dev

Woocommerce3で商品のカスタムフィールドを注文アイテムとして表示する

分類Dev

WooCommerceの注文とメールにカスタムカートアイテムデータを追加して表示する

分類Dev

Woocommerceカートアイテムのカスタムデータを注文アイテムのメタデータとして保存し、注文やメールに表示します

分類Dev

WooCommerce管理者マニュアル注文のカスタム注文項目メタデータとして製品のカスタムフィールドを保存します

分類Dev

WooCommerce注文の注文アイテムの合計量をカスタムメタデータとして保存します

分類Dev

WooCommerceバックエンドのデフォルト値としてカスタムフィールドを追加し、以前の注文を入力します

分類Dev

カスタムカートアイテムの値をWooCommerce注文アイテムのメタデータに追加します

分類Dev

フックされた関数の注文アイテムメタに保存されたカスタムフィールド値を取得します

分類Dev

製品のカスタムフィールド値をカスタムオーダーアイテムメタとしてWooCommerceに保存する

分類Dev

WoocommerceのEメール注文合計テーブルに新しい行としてカスタムフィールド値を挿入します

分類Dev

WooCommerce管理者注文リストのフィルターメニューにカスタム注文ステータスを追加します

分類Dev

WooCommerceでカートアイテムメタおよびオーダーアイテムメタとしてカスタムフィールドを追加します

分類Dev

注文アイテムのカスタムメタデータをWoocommerceに保存して表示する

分類Dev

カスタム商品テキストフィールドをWooCommerceのカートアイテムデータとして渡す

分類Dev

Woocommerce管理者注文リスト「注文」の既存の列にカスタムフィールドを追加します

分類Dev

ShipstationのカスタムフィールドとしてWooCommerce注文の総量を保存します

分類Dev

InfusionsoftのAPIを使用してカスタムフィールドを注文するためのデータの保存

分類Dev

各アイテムの割引合計をWooCommerce注文アイテムのメタデータとして追加します

分類Dev

Woocommerce注文編集ページの「カスタムフィールド」メタボックスを削除します

分類Dev

Woocommerceのカートアイテムの数量に基づいてカスタムチェックアウトフィールドを追加します

分類Dev

Woocommerceのタイトルを持つhtmlスタイルのテーブルとしてカスタムメタデータをメールに追加する

分類Dev

WooCommerce:内部使用のためにカスタムメタを非表示の注文アイテムメタとして追加

分類Dev

追加されたカスタムカートアイテムデータをWoocommerceカート、チェックアウト、注文に表示して保存します

分類Dev

AngularJsのカスタムフィルターを使用してアイテムに色を適用します

分類Dev

Woocommerceは管理注文の詳細にカスタムフィールドデータを表示します

Related 関連記事

  1. 1

    すべての特定の注文アイテムのカスタムフィールドの合計を注文メタデータとしてWooCommerceに保存します

  2. 2

    Woocommerce3でカスタムメタデータの注文としてカスタムチェックアウトフィールドを追加します

  3. 3

    WooCommerce注文アイテムのカスタムフィールドの合計を新しいメタデータとして保存する

  4. 4

    メタキーからWooCommerce注文アイテムのカスタムフィールド値を取得します

  5. 5

    Woocommerce3で商品のカスタムフィールドを注文アイテムとして表示する

  6. 6

    WooCommerceの注文とメールにカスタムカートアイテムデータを追加して表示する

  7. 7

    Woocommerceカートアイテムのカスタムデータを注文アイテムのメタデータとして保存し、注文やメールに表示します

  8. 8

    WooCommerce管理者マニュアル注文のカスタム注文項目メタデータとして製品のカスタムフィールドを保存します

  9. 9

    WooCommerce注文の注文アイテムの合計量をカスタムメタデータとして保存します

  10. 10

    WooCommerceバックエンドのデフォルト値としてカスタムフィールドを追加し、以前の注文を入力します

  11. 11

    カスタムカートアイテムの値をWooCommerce注文アイテムのメタデータに追加します

  12. 12

    フックされた関数の注文アイテムメタに保存されたカスタムフィールド値を取得します

  13. 13

    製品のカスタムフィールド値をカスタムオーダーアイテムメタとしてWooCommerceに保存する

  14. 14

    WoocommerceのEメール注文合計テーブルに新しい行としてカスタムフィールド値を挿入します

  15. 15

    WooCommerce管理者注文リストのフィルターメニューにカスタム注文ステータスを追加します

  16. 16

    WooCommerceでカートアイテムメタおよびオーダーアイテムメタとしてカスタムフィールドを追加します

  17. 17

    注文アイテムのカスタムメタデータをWoocommerceに保存して表示する

  18. 18

    カスタム商品テキストフィールドをWooCommerceのカートアイテムデータとして渡す

  19. 19

    Woocommerce管理者注文リスト「注文」の既存の列にカスタムフィールドを追加します

  20. 20

    ShipstationのカスタムフィールドとしてWooCommerce注文の総量を保存します

  21. 21

    InfusionsoftのAPIを使用してカスタムフィールドを注文するためのデータの保存

  22. 22

    各アイテムの割引合計をWooCommerce注文アイテムのメタデータとして追加します

  23. 23

    Woocommerce注文編集ページの「カスタムフィールド」メタボックスを削除します

  24. 24

    Woocommerceのカートアイテムの数量に基づいてカスタムチェックアウトフィールドを追加します

  25. 25

    Woocommerceのタイトルを持つhtmlスタイルのテーブルとしてカスタムメタデータをメールに追加する

  26. 26

    WooCommerce:内部使用のためにカスタムメタを非表示の注文アイテムメタとして追加

  27. 27

    追加されたカスタムカートアイテムデータをWoocommerceカート、チェックアウト、注文に表示して保存します

  28. 28

    AngularJsのカスタムフィルターを使用してアイテムに色を適用します

  29. 29

    Woocommerceは管理注文の詳細にカスタムフィールドデータを表示します

ホットタグ

アーカイブ