WooCommerce添加自定义字段到可变商品

文 / @UTHEME

关于WooCommerce可变商品的自定义字段

我是一名小本本,来今天和大家分享关于WooCommerce可变商品的自定义字段的内容。如果我们想要处理商品和订单更加方便,有时候默认的SKU、价格、库存等选项是不够用的。比如,一个面向全国的商城,产品在不同的仓库里面存放,我们需要在可变商品字段里面添加一个“存放仓库”的字段。

20150212003301

如何添加自定义字段到WooCommerce可变商品

我们可以在当前使用的WooCommerce主题的functions.php中插入以下代码:

function variable_fields($loop, $variation_data){
  ?>
  <tr>
  <td>
  <div>
  <label><?php _e('存放地点', 'woocommerce'); ?></label>
  <input type="text" size="5" name="my_custom_field[<?php echo $loop; ?>]" value="<?php echo $variation_data['_my_custom_field'][0]; ?>"/>
  </div>
  </td>
  </tr>
  <?php
}

function variable_fields_js(){
  ?>
  <tr>\
  <td>\
  <div>\
  <label><?php _e('存放地点', 'woocommerce'); ?></label>\
  <input type="text" size="5" name="my_custom_field['+loop+']"/>\
  </div>\
  </td>\
  </tr>\
  <?php
}

function variable_fields_process($post_id){
  if(isset($_POST['variable_sku'])):
    $variable_sku=$_POST['variable_sku'];
    $variable_post_id=$_POST['variable_post_id'];
    $variable_custom_field=$_POST['my_custom_field'];
    for($i=0;$i<sizeof($variable_sku);$i++):
      $variation_id=(int)$variable_post_id[$i];
      if(isset($variable_custom_field[$i])){
        update_post_meta($variation_id,'_my_custom_field',stripslashes($variable_custom_field[$i]));
      }
    endfor;
  endif;
}

如何调用WooCommerce可变商品的自定义字段

在 WordPress 的自定义字段中添加的自定义字段也可以在 WooCommerce 可变商品中使用。可以用 get_post_meta 调用这个字段:

global $product;
$available_variations = $product->get_available_variations();

foreach($available_variations as $prod_variation):
  $post_id = $prod_variation['variation_id'];
  $post_object = get_post($post_id);
  $my_custom_field = get_post_meta($post_object->ID, '_my_custom_field', true);
endforeach;

WooCommerce 提供了非常方便的接口,非常适合进行二次开发。如果你需要定制 WooCommerce 主题或插件,可以直接咨询 WordPress 智库,我们会很乐意为你提供服务。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。