cli*_*ere 5 php wordpress checkbox input woocommerce
没有运气就浪费了超过12个小时来使它工作。在这里找到了其他一些线程,也有一些类似的问题,但是都没有回应。
// 我需要的?
我需要在WooCommerce Admin订单视图上的每个产品复选框,如果checked值是yes:否应存储为order_item_meta。因此,客户可以检查所有订购的物品是否都已完整运送。要挂入,动作woocommerce_after_order_itemmeta看起来像正确的位置。
//为什么不简单地将Meta添加到项目?
是的,它可以工作-但是有一个复选框可以吗?:)
//到目前为止我做了什么?
在这里阅读了很多帖子,尤其是这个-> WooCommerce-admin-order-details-show-custom-data-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);
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
在前端,我的帐户实际上看起来像这样。 前端-我的帐户 带有绿点的指示器,客户可以检查订购的商品是否已经发货!
任何想法,我怎样才能使它工作?
感谢您的宝贵时间和帮助。谢谢!