聪明人,我有可能是一个挑战,至少对我来说是这样。
我正在使用Woocommerce的电子商务网站,但需要自定义可变产品选项,以包括我的产品更相关的变化信息。默认情况下,Woocommerce为您提供以下可变产品选项:SKU、库存数量、常规价格、销售价格、重量、尺寸(长×宽×高)、装运类别。您能告诉我如何删除这些选项并添加我自己的选项吗。我需要的选项,如建设,最大负荷单(公斤),最大负荷双(公斤),最大速度(公里/小时)。。。。我需要这个,这样每个大小属性都可以有不同的变量。
将自定义字段添加到选项卡后,我还需要它们显示在前端附加信息选项卡上。
有什么想法吗?
需要定制的面板图像是
谢谢
您将需要钩入:
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;
}
我希望这能让你走上正轨!