在帐单地址后显示 WooCommerce 管理员订单中的自定义元数据
Display custom meta data in WooCommerce admin order after billing address
在 上阅读了 7uc1f3r 的回答后,我尽力了解如何将实际时间添加到订单中。
这在最初的问题中已经提到,但是当修改该代码以匹配 7uc1f3r 的答案代码时,我在订单页面(管理员)上收到一条通知。
它说:
Notice: id was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-admin/edit-form-advanced.php'), do_meta_boxes, WC_Meta_Box_Order_Data::output, do_action('woocommerce_admin_order_data_after_billing_address'), WP_Hook->do_action, WP_Hook->apply_filters, wps_select_checkout_field_display_admin_order_meta, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong Please see Debugging in WordPress for more information. (This message was added in version 3.0.) in /wp-includes/functions.php on line 5311
以实际发货时间为准,但上面有此通知。
话虽如此; 我尽最大努力进一步修改代码以检查“如果”交货时间不为空,如果是,请显示。这也没有帮助 - 通知仍然存在。
这是我改成的代码:
add_action('woocommerce_admin_order_data_after_billing_address', 'wps_select_checkout_field_display_admin_order_meta', 10, 1 );
function wps_select_checkout_field_display_admin_order_meta( $order ) {
if ( get_post_meta( $order->get_id(), 'delivery_time' != '' ) ) {
echo '<p><strong>'.__('Requested Delivery Time').':</strong> ' . get_post_meta($order->id, 'delivery_time', true) . '</p>';
}
}
不确定如何删除通知。
问题来自 $order->id
,因此请尝试以下操作:
add_action('woocommerce_admin_order_data_after_billing_address', 'wps_select_checkout_field_display_admin_order_meta', 10, 1 );
function wps_select_checkout_field_display_admin_order_meta( $order ) {
$delivery_time = $order->get_meta('delivery_time');
if ( ! empty($delivery_time) ) {
echo '<p><strong>'.__('Requested Delivery Time').':</strong> ' . $delivery_time . '</p>';
}
}
现在应该可以了。
在
这在最初的问题中已经提到,但是当修改该代码以匹配 7uc1f3r 的答案代码时,我在订单页面(管理员)上收到一条通知。
它说:
Notice: id was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-admin/edit-form-advanced.php'), do_meta_boxes, WC_Meta_Box_Order_Data::output, do_action('woocommerce_admin_order_data_after_billing_address'), WP_Hook->do_action, WP_Hook->apply_filters, wps_select_checkout_field_display_admin_order_meta, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong Please see Debugging in WordPress for more information. (This message was added in version 3.0.) in /wp-includes/functions.php on line 5311
以实际发货时间为准,但上面有此通知。
话虽如此; 我尽最大努力进一步修改代码以检查“如果”交货时间不为空,如果是,请显示。这也没有帮助 - 通知仍然存在。
这是我改成的代码:
add_action('woocommerce_admin_order_data_after_billing_address', 'wps_select_checkout_field_display_admin_order_meta', 10, 1 );
function wps_select_checkout_field_display_admin_order_meta( $order ) {
if ( get_post_meta( $order->get_id(), 'delivery_time' != '' ) ) {
echo '<p><strong>'.__('Requested Delivery Time').':</strong> ' . get_post_meta($order->id, 'delivery_time', true) . '</p>';
}
}
不确定如何删除通知。
问题来自 $order->id
,因此请尝试以下操作:
add_action('woocommerce_admin_order_data_after_billing_address', 'wps_select_checkout_field_display_admin_order_meta', 10, 1 );
function wps_select_checkout_field_display_admin_order_meta( $order ) {
$delivery_time = $order->get_meta('delivery_time');
if ( ! empty($delivery_time) ) {
echo '<p><strong>'.__('Requested Delivery Time').':</strong> ' . $delivery_time . '</p>';
}
}
现在应该可以了。