WooCommerce Admin - >订单|在每个产品上添加复选框

时间:2016-02-08 02:49:46

标签: php wordpress checkbox input woocommerce

浪费了超过12个小时才能让这个工作,没有运气。在这里找到了一些其他线程,有一些类似的问题,但都没有回复。

//我需要什么?

我需要在每个产品的WooCommerce管理员订单视图中选中一个复选框,如果checked值为是:否则应存储为order_item_meta。因此,客户可以检查所有订购的商品是否完全装运。 要挂钩,动作woocommerce_after_order_itemmeta看起来就像是正确的位置。

//为什么不简单地将Meta添加到项目?

是的,它有效 - 但是不是很好有一个复选框吗? :)

//到目前为止我做了什么?

在这里阅读了很多帖子,尤其是这一篇 - > WooCommerce-admin-order-details-show-custom-data-on-order-details-page

我不知道,我在哪里以及如何从这开始 - 在我的functions.php中结束了这段代码。

<?php

add_action( 'woocommerce_after_order_itemmeta', 'item_shipped',
10, 3 );
function item_shipped() {
?>
<input type="checkbox" name="custom-meta-box[]" value="yes" <?php if(isset($_POST['is-shipped-meta']['is_shipped'])) echo 'checked="checked"'; ?>  /> is shipped?
<?php  
 }

 add_action( 'woocommerce_add_order_item_meta', 'save_is_shipped_meta' );
 function save_is_shipped_meta()
 {

     global $item_id, $item, $product;
     // Get our form field
     if(isset( $_POST['is-shipped-meta'] ))
     {
         $value = $_POST['is-shipped-meta'];
         $old_meta = get_metadata($item->id, 'is-shipped-meta', true);
         // Update order item meta
         if(!empty($old_meta)){
         woocommerce_add_order_item_meta($item->id, 'is-shipped-meta', $value);
         } else {
            woocommerce_add_order_item_meta($item->id, 'is-shipped-meta', $value);
         }
     }
 }

?>

在前端,my-account实际上看起来像这样。 Frontend - My Account 使用绿点作为指示器,客户可以检查订购的商品是否已经发货!

任何想法,我怎么能让这个工作?

我非常感谢您的时间和帮助。谢谢!

0 个答案:

没有答案