the_tags tag name first codex all php wordpress woocommerce orders hook-woocommerce

php - name - the_tags wordpress



Cómo obtener el ID de pedido en el enganche woocommerce_email_headers (2)

Intento establecer la dirección de correo electrónico cuando tengo un nuevo pedido. Y wp_postmeta el new email en wp_postmeta .

¿Cómo obtener $order_id al usar woocommerce_email_headers ?

Necesito obtener el order_id para usarlo con la función get_post_meta() .

Aquí está mi código:

function techie_custom_wooemail_headers( $headers, $object) { $email = get_post_meta( $order_id, ''_approver_email'', true ); // Replace the emails below to your desire email $emails = array(''[email protected]'', $email); switch($object) { case ''new_order'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; case ''customer_processing_order'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; case ''customer_completed_order'': case ''customer_invoice'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; default: } return $headers; } add_filter( ''woocommerce_email_headers'', ''techie_custom_wooemail_headers'', 10, 2);

¿Cómo recupero los datos?

Gracias.


Realicé algunas pruebas intentando obtener datos brutos del objeto $ order sin éxito. Después de algunas otras pruebas obtuve la ID de orden correcta. He usado el código a continuación para mi prueba para estar seguro. Reemplace el valor de $your_email por su propio correo electrónico. Luego recibirá un correo electrónico con la ID del pedido en el nombre del encabezado:

function testing_hook_headers( $headers, $id, $order ) { $order_id = $order->id; $your_email = ''<[email protected]>''; $headers = "To: Order Num $order_id $your_email"; return $headers; } add_filter( ''woocommerce_email_headers'', ''testing_hook_headers'', 10, 3);

Así que aquí está tu código:

function techie_custom_wooemail_headers( $headers, $id, $order ) { // The order ID $order_id = $order->id; $email = get_post_meta( $order_id, ''_approver_email'', true ); // Replace the emails below to your desire email $emails = array(''[email protected]'', $email); switch($object) { case ''new_order'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; case ''customer_processing_order'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; case ''customer_completed_order'': case ''customer_invoice'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; default: } return $headers; } add_filter( ''woocommerce_email_headers'', ''techie_custom_wooemail_headers'', 10, 3);

No he probado su código ya que es particular, pero usted tiene la manera correcta de obtener el ID del pedido.


En WooCommerce versión 2.3 y superior, han cambiado el número de parámetros pasados ​​al filtro

function techie_custom_wooemail_headers( $headers, $id, $object) { $email = get_post_meta( $order_id, ''_approver_email'', true ); // Replace the emails below to your desire email $emails = array(''[email protected]'', $email); switch($id) { case ''new_order'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; case ''customer_processing_order'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; case ''customer_completed_order'': case ''customer_invoice'': $headers .= ''Bcc: '' . implode('','', $emails) . "/r/n"; break; default: } return $headers; } add_filter( ''woocommerce_email_headers'', ''techie_custom_wooemail_headers'', 10, 3);

$object : indica que este correo electrónico es para, por ejemplo, un cliente, producto o correo electrónico.

intente var_dump($object); exit; var_dump($object); exit; retrollamada dentro del filtro