我们使用Booster插件,它创建了一个惟一的WooCommerce订单号,如WC-456544646。现在我需要添加原始的order_id,它仍然在后台和WooCommerce API中工作。
增强器为原始订单ID [wcj_order_id]提供了一个短代码
以下是编辑订单页面上自定义Woo订单号的HTML。
<h2 class="woocommerce-order-data__heading">
Order #WC-63872414 details</h2>

如何在“编辑顺序”页面中插入一个短代码?
(Woocommerce/Orders/Select /Order细节(如/post.php?post=638&action=edit )
发布于 2019-06-19 17:47:49
我查了一下助推器插件代码。它使用woocommerce_order_number过滤器钩子替换WC编辑订单页和订单中的订单ID。在/woocommerce-jetpack/includes/class-wcj-order-numbers.php中:
add_filter( 'woocommerce_order_number', array( $this, 'display_order_number' ), PHP_INT_MAX, 2 );
由于它没有在任何动作钩子中传递$instance的WCJ_Order_Numbers或WC_Jetpack类,为了删除该文本并使用自定义文本,我们不能使用remove_filter函数。因此,要覆盖Booster插件,我们必须将另一个函数连接到woocommerce_order_number。
将WC order_id添加到管理订单页面:
add_action( 'admin_init', 'append_wc_order_id');
function append_wc_order_id()
{
add_filter('woocommerce_order_number', 'filter_wc_order_id', PHP_INT_MAX);
function filter_wc_order_id($order_id)
{
/* If you are using 'init' action hook, uncomment bellow line to apply this code only to your admin pages: */
//if (!is_admin()) return $order_id;
return $order_id . ' | #' . do_shortcode('[wcj_order_id]');
}
}这段代码转到主题的functions.php文件中。
测试& Wordking

备注:
PHP_INT_MAX优先级,因此为了覆盖这一点,我们不能使用更大的整数优先级。因此,在其他插件完成工作之后,我使用admin_init操作将我的函数连接到woocommerce_order_number。它可以像您预期的那样工作,而不使用init钩子,但它没有得到保证。您也可以使用init钩子而不是admin_init在站点的前端添加WC order_id。“我的帐户”一页)。阅读代码中的注释。return $order_id . ' | #' . do_shortcode('[wcj_order_id]');至:
return do_shortcode('[wcj_order_id]');https://stackoverflow.com/questions/56668634
复制相似问题