4

とにかく、少なくとも私にとっては挑戦になるかもしれないものがあります。

Woocommerce を e コマース サイトに使用していますが、可変商品オプションをカスタマイズして、商品に関連するより多くのバリエーション情報を含める必要があります。デフォルトでは、Woocommerce は可変商品、SKU、在庫数、通常価格、販売価格、重量、寸法 (L×W×H)、配送クラスに対して次のオプションを提供します。これらのオプションを削除して独自のオプションを追加する方法を教えてください。Construction、Max Load Single (kg)、Max Load Dual (kg)、Max Speed (km/h) などのオプションが必要です。各サイズ属性が異なる変数を持つことができるように、これが必要です。

カスタム フィールドをタブに追加した後、フロント エンドの [追加情報] タブにも表示する必要があります。

何か案は?

カスタマイズが必要なパネルのイメージは

ここ

ありがとう

4

1 に答える 1

0

以下にフックする必要があります。

woocommerce_process_product_meta_variable

したがって、次のようなものがうまくいきます。

add_action( 'woocommerce_process_product_meta_variable', 'new_custom_field_here', 10, 1 );

function new_custom_field_here( $loop, $variation_data ) { ?>

      <label>New Field</label>
      <input name="new_field_[<?php echo $loop; ?>]" value="<?php echo $variation_data['_new_field'][0]; ?>"/>
    
<?php }

これにより、新しいフィールドが作成されます。次に、このデータを保存する必要があります。

add_action( 'woocommerce_process_product_meta_variable', 'save_new_custom_field', 10, 1 );

function save_new_custom_field( $post_id ) {
if (isset( $_POST['variable_sku'] ) ) :
    $variable_sku = $_POST['variable_sku'];
    $variable_post_id = $_POST['variable_post_id'];

    $new_field = $_POST['new_field'];
    
    for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
        $variation_id = (int) $variable_post_id[$i];
        if ( isset( $new_field [$i] ) ) {
            update_post_meta( $variation_id, '_new_field', stripslashes( $new_field [$i] ) );
            update_post_meta( $variation_id, '_parent_product', $post_id );

        }
        
    endfor;

endif;
}

これがあなたを正しい軌道に乗せることを願っています!

于 2013-10-23T12:06:20.743 に答える