我需要將帶有訂單 ID 和密碼的鏈接添加到訂單項元資料。
目前,我正在使用該woocommerce_checkout_create_order_line_item操作成功地將其他資訊添加到專案元資料中,但是當此操作運行時,訂單 ID 尚不可訪問 (?)。
我是否可以通過其他方式執行此操作,以便在保存訂單并向客戶發送通知之前添加鏈接?
add_action( 'woocommerce_checkout_create_order_line_item', 'custom_checkout_create_order_line_item', 20, 4 );
function custom_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {
if( ! isset( $values['test_title'] ) ) { return; }
// add test info as order item metadata
if( ! empty( $values['test_title'] ) ) {
$test_pw = wp_generate_password(); // generate a password
$item->update_meta_data( '_test_id', $values['test_id'] ); // add test id
$item->update_meta_data( '_test_password', $test_pw ); // add test access password
$item->update_meta_data( 'Access link', // add test access permalink
get_permalink( $values['test_id'] ) . '?order=' . $order->get_id() . '&pw=' . $test_pw );
}
}
uj5u.com熱心網友回復:
在保存訂單之前執行您的掛鉤,并在該“保存”步驟中確定訂單 ID。
因此,除非您可以在鉤子中包含此功能,否則我認為此時沒有辦法知道訂單 ID。
但是,根據您的問題,我了解到它涉及您希望在電子郵件中顯示的專案元資料。那么使用woocommerce_order_item_meta_start或woocommerce_order_item_meta_end鉤子不是一個選項,它允許您在wc_display_item_meta()WooCommerce 函式的輸出之前或之后添加其他產品資訊:
function action_woocommerce_order_item_meta_start( $item_id, $item, $order, $plain_text ) {
// On email notifications
if ( ! is_wc_endpoint_url() && $item->is_type('line_item') ) {
echo '<ul ><li><strong >Label</strong><p>Value order id = ' . $order->get_id() . '</p></li></ul>';
}
}
add_action( 'woocommerce_order_item_meta_start', 'action_woocommerce_order_item_meta_start', 10, 4 );
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/366676.html
標籤:WordPress的 求购 钩子商务 订单 电子邮件通知
上一篇:繼續顯示提示,直到在javascript中給出正確的值
下一篇:更新特定ID的元值
