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