聪明的人我至少对我来说可能是一个挑战。
我正在将Woocommerce用于电子商务网站,但需要自定义可变产品选项,以便为我的产品添加更相关的变体信息。默认情况下,Woocommerce为您提供以下可变产品,SKU,库存数量,常规价格,销售价格,重量,尺寸(长×宽×高),运输等级的选项。你能告诉我如何删除这些选项并添加我自己的选项。我需要选项,如构造,最大载荷单(kg),最大载荷双(kg),最大速度(km / h)....我需要这样,所以每个尺寸属性可以有不同的变量。
将自定义字段添加到选项卡后,我还需要它们显示在前端添加信息选项卡上。
有什么想法吗?
需要定制的面板图片
here http://i42.tinypic.com/2hsby3t.png
由于
答案 0 :(得分:0)
您需要加入:
woocommerce_process_product_meta_variable
所以这样的事情就可以解决问题:
add_action( 'woocommerce_process_product_meta_variable', 'function 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;
}
我希望这能让你走上正轨!