我正在尝试将“跟踪发货”按钮添加到 WooCommerce 我的帐户订单中,使用此代码跟踪订单 ID 中的订单,但无法正常工作,请帮忙,我错在哪里?在我的子主题的 funtions.php 文件中使用。
add_filter( 'woocommerce_my_account_my_orders_actions', 'my_code_add_myaccount_order_track_button', 10, 2 );
function my_code_add_myaccount_order_track_button( $actions, $order ) {
// Retrieve tracking link based on order ID (replace this with your logic to get the tracking link)
$order_id = $order->get_id();
$tracking_link = get_post_meta( $order_id, '_tracking_link', true ); // Assuming you store the tracking link in a custom field
if ( ! empty( $tracking_link ) ) {
$actions['track'] = array(
'url' => $tracking_link,
'name' => __( 'Track', 'woocommerce' ),
);
}
return $actions;
}
随着 WooCommerce 逐步迁移到自定义数据库表,您应该使用 CRUD 方法,但不再使用 WordPress 帖子元功能,特别是在启用了 高性能订单存储 的情况下。
假设客户订单有一个注册为自定义订单元数据的跟踪 URL,请尝试以下代码替换:
add_filter( 'woocommerce_my_account_my_orders_actions', 'my_account_my_orders_tracking_button', 10, 2 );
function my_account_my_orders_tracking_button( $actions, $order ) {
// Get tracking link custom metadata
$tracking_link = $order->get_meta('_tracking_link');
if ( ! empty( $tracking_link ) ) {
$actions['track'] = array(
'url' => $tracking_link,
'name' => __( 'Track', 'woocommerce' ),
);
}
return $actions;
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。