Saya mempunyai ciri ini untuk menambah medan meta tersuai pada butiran produk dalam semua e-mel WooCommerce. Tetapi saya hanya memerlukannya untuk muncul selepas pesanan telah dibayar (ini juga boleh menjadi e-mel "selesai" sahaja).
add_action( 'woocommerce_order_item_meta_start', 'email_confirmation_display_order_items', 10, 3 ); function email_confirmation_display_order_items( $item_id, $item, $order ) { // On email notifications for line items if ( ! is_wc_endpoint_url() && $item->is_type('line_item') ) { $ot_address = get_post_meta( $item->get_product_id(), 'ot_address', true ); if ( ! empty($ot_address) ) { printf( '<div>' . __("Terms: %s", "woocommerce") . '</div>', $ot_address ); } } }
Saya harap saya boleh meletakkannya di dalam if ( $email->id == 'customer_completed_order' ) {}
supaya kod akhir akan kelihatan seperti ini:
add_action( 'woocommerce_order_item_meta_start', 'email_confirmation_display_order_items', 10, 3 ); function email_confirmation_display_order_items( $item_id, $item, $order ) { if ( $email->id == 'customer_completed_order' ) { // On email notifications for line items if ( ! is_wc_endpoint_url() && $item->is_type('line_item') ) { $ot_address = get_post_meta( $item->get_product_id(), 'ot_address', true ); if ( ! empty($ot_address) ) { printf( '<div>' . __("Terms: %s", "woocommerce") . '</div>', $ot_address ); } } } }
Tetapi selepas menukar ia berhenti berfungsi. Ada apa-apa cadangan?
Seperti yang anda lihat dalam kod cuba,
$email
不是woocommerce_order_item_meta_start
bahagian cangkuk. Jadi, untuk menyasarkan pemberitahuan e-mel WooCommerce tertentu, anda memerlukan penyelesaian.Langkah 1) Buat dan tambah pembolehubah global melalui cangkuk lain yang hanya berfungsi untuk pemberitahuan e-mel WooCommerce.
Langkah 2) Dalam cangkuk
woocommerce_order_item_meta_start
, gunakan pembolehubah global supaya kami boleh menyasarkan pemberitahuan e-mel WooCommerce tertentu