浪费了超过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 使用绿点作为指示器,客户可以检查订购的商品是否已经发货!
任何想法,我怎么能让这个工作?
我非常感谢您的时间和帮助。谢谢!