在编辑订单页面的自定义 Woocommerce 订单号下方添加 order_id
Add order_id beneath custom Woocommerce Order Number on Edit Order page
我们使用 Booster 插件创建一个唯一的 WooCommerce 订单号,例如 WC-456544646。我现在需要添加仍在后台运行的原始 order_id 以及 WooCommerce API.
Booster 为原始订单 ID 提供简码 [wcj_order_id]
这是“编辑订单”页面上自定义 Woo 订单号的HTML。
<h2 class="woocommerce-order-data__heading">
Order #WC-63872414 details</h2>
如何在 'Edit Order' 页面上插入短代码?
(Woocommerce/Orders/[Select Order/Order 详情] 例如 /post.php?post=638&action=edit
我查看了 Booster 插件代码。它使用 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 );
因为它没有在任何操作挂钩中传递 WCJ_Order_Numbers
和 WC_Jetpack
类 的 $instance,为了删除此文本并使用自定义文本,我们不能使用 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:
备注:
1. Booster 代码中的过滤器挂钩使用 PHP_INT_MAX
优先级,因此为了覆盖它,我们不能使用更大的整数优先级。因此,在其他插件完成它们的工作后,我使用 admin_init
操作将我的函数挂接到 woocommerce_order_number
。在不使用 init 挂钩的情况下,它可能会按您预期的方式运行,但不能保证。您也可以使用 init
挂钩而不是 admin_init
在站点的 front-end 侧添加 WC order_id(例如 'My Account' 页面)。阅读代码内的注释。
2. 要删除管理页面上由 Booster 插件生成的订单 ID,您可以更改此行:
return $order_id . ' | #' . do_shortcode('[wcj_order_id]');
至:
return do_shortcode('[wcj_order_id]');
我们使用 Booster 插件创建一个唯一的 WooCommerce 订单号,例如 WC-456544646。我现在需要添加仍在后台运行的原始 order_id 以及 WooCommerce API.
Booster 为原始订单 ID 提供简码 [wcj_order_id]
这是“编辑订单”页面上自定义 Woo 订单号的HTML。
<h2 class="woocommerce-order-data__heading">
Order #WC-63872414 details</h2>
如何在 'Edit Order' 页面上插入短代码?
(Woocommerce/Orders/[Select Order/Order 详情] 例如 /post.php?post=638&action=edit
我查看了 Booster 插件代码。它使用 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 );
因为它没有在任何操作挂钩中传递 WCJ_Order_Numbers
和 WC_Jetpack
类 的 $instance,为了删除此文本并使用自定义文本,我们不能使用 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:
备注:
1. Booster 代码中的过滤器挂钩使用 PHP_INT_MAX
优先级,因此为了覆盖它,我们不能使用更大的整数优先级。因此,在其他插件完成它们的工作后,我使用 admin_init
操作将我的函数挂接到 woocommerce_order_number
。在不使用 init 挂钩的情况下,它可能会按您预期的方式运行,但不能保证。您也可以使用 init
挂钩而不是 admin_init
在站点的 front-end 侧添加 WC order_id(例如 'My Account' 页面)。阅读代码内的注释。
2. 要删除管理页面上由 Booster 插件生成的订单 ID,您可以更改此行:
return $order_id . ' | #' . do_shortcode('[wcj_order_id]');
至:
return do_shortcode('[wcj_order_id]');