如果选中复选框,则会为WooCommerce中的“my\\u checkbox”自定义订单字段保存值1。我正在编辑订单管理表,如果“my\\u checkbox”的值等于1,我需要能够回显特定的图标url。我只是不知道如何检查该值是否等于1,以便我可以回显url。有什么想法吗?
为了简化故障排除,下面是代码:
/**
* Add checkbox field to the checkout
**/
add_action(\'woocommerce_after_checkout_billing_form\', \'match_previous_order_checkbox\');
function match_previous_order_checkbox( $checkout ) {
echo \'<div id="match_the_order">\';
woocommerce_form_field( \'my_checkbox\', array(
\'type\' => \'checkbox\',
\'class\' => array(\'form-row notes\'),
\'label\' => __( \'This is a previous order\' , \'woothemes\'),
\'required\' => false,
),
$checkout->get_value( \'my_checkbox\' ));
echo \'</div>\';
}
/**
* Update the order meta with field value
**/
add_action(\'woocommerce_checkout_update_order_meta\', \'match_order_checkout_field_update_order_meta\');
function match_order_checkout_field_update_order_meta( $order_id ) {
if ($_POST[\'my_checkbox\']) {
update_post_meta( $order_id, \'My_Checkbox\', esc_attr($_POST[\'my_checkbox\']));
}
}
global $order;
$match_order_meta = get_post_meta( $order_id , \'My_Checkbox\' );
$match_order_meta = get_post_meta( $order->ID , \'My_Checkbox\' );
也不起作用。也不管我是否包括
global $order;
似乎没什么关系。
最合适的回答,由SO网友:Steve 整理而成
WooCommerce订单是帖子,其行为与任何WordPress帖子相同。因此,您可以使用相同的WordPress函数来更新或读取post元数据。
<?php $meta_values = get_post_meta($post_id, $key, $single); ?>
对于你的例子,我建议:
$match_order_meta = get_post_meta( $order->ID, \'My_Checkbox\', TRUE);
“TRUE”标志告诉WordPress以字符串形式返回值。如果没有TRUE标志,您将得到一个数组。再次查看下面的文档。
您还可以:
echo \'<!-- $order->ID -->\';
以确保您拥有正确的ID。
这是文件get_post_meta().