【问题标题】:Woocommerce - custom variable product optionsWoocommerce - 自定义可变产品选项
【发布时间】:2013-07-05 06:03:29
【问题描述】:

聪明的人,至少对我来说可能是个挑战。

我正在将 Woocommerce 用于电子商务网站,但需要自定义可变产品选项以包含更多与我的产品相关的变体信息。默认情况下,Woocommerce 为您提供以下可变产品选项:SKU、库存数量、常规价格、销售价格、重量、尺寸(长×宽×高)、运输类别。你能告诉我如何删除这些选项并添加我自己的选项吗?我需要诸如Construction、Max Load Single (kg)、Max Load Dual (kg)、Max Speed (km/h)之类的选项......我需要这个,所以每个尺寸属性都可以有不同的变量。

将自定义字段添加到选项卡后,我还需要将它们显示在前端附加信息选项卡上。

有什么想法吗?

需要定制的面板图片是

谢谢

【问题讨论】:

    标签: wordpress customization woocommerce


    【解决方案1】:

    你需要连接:

    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;
    }
    

    我希望这能让你走上正轨!

    【讨论】:

    • 你的意思是 'new_custom_field_here' 不是 'function new_custom_field_here' 但它仍然没有给我管理结果
    • @Fanky 这个答案现在已经 7 岁了......钩子很可能随着最新的 WooCommerce 而改变
    猜你喜欢
    • 2021-07-24
    • 1970-01-01
    • 2015-06-26
    • 2021-04-16
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多