traducir textos texto plugin personalizar para notificaciones for envia emails customizer correos cambiar php wordpress woocommerce orders email-notifications

php - textos - woocommerce email



Notificaciones por correo electrónico de WooCommerce: destinatario de correo electrónico diferente para diferentes ciudades (1)

Utilizo Woocommerce y, de hecho, recibo notificaciones de pedidos solo para un correo electrónico. Me gustaría recibir notificaciones sobre pedidos en 2 correos electrónicos diferentes según la ubicación del cliente:

  • Para el cliente de la zona 1 (Alemania), me gustaría recibir las notificaciones por correo electrónico en
    Mail #1 ([email protected]) ,
  • Para todas las demás zonas, como la zona 2 (México), me gustaría recibir las notificaciones por correo electrónico en
    Mail #2 ([email protected]) .

Estaba buscando algunas funciones en la red, pero solo encontré funtcions para enviar a dos direcciones de correo electrónico, pero sin ninguna condición If.

Lo que necesitaré es algo como eso:

if ($user->city == ''Germany'') $email->send(''[email protected]'') else $email->send(''[email protected]'')

¿Qué gancho puedo usar para que funcione?

Gracias.


Puede utilizar una función personalizada enganchada en el gancho del woocommerce_email_recipient_{$this->id} , dirigiendo la notificación por correo electrónico a ''Nuevo pedido'' , de esta manera:

add_filter( ''woocommerce_email_recipient_new_order'', ''diff_recipients_email_notifications'', 10, 2 ); function diff_recipients_email_notifications( $recipient, $order ) { // Set HERE your email adresses $email_zone1 = ''[email protected]''; $email_zone_others = ''[email protected]''; // Set here your targeted country code for Zone 1 $country_zone1 = ''GE''; // Germany country code here // User Country (We get the billing country if shipping country is not available) $user_country = $order->shipping_country; if(empty($user_shipping_country)) $user_country = $order->billing_country; // Conditionaly send additional email based on billing customer city if ( $country_zone1 == $user_country ) $recipient = $email_zone1; else $recipient = $email_zone_others; return $recipient; }

Para la próxima versión 2.7 de WooCommerce, algunos métodos nuevos estarán disponibles en la clase WC_Abstract_Order en relación con el país de facturación y el país de envío, pero el código real en esa función seguirá siendo compatible. Estos nuevos métodos son respectivamente get_billing_country() y get_shipping_country() ...
Uso con el objeto instancia de $ order :

$order->get_billing_country(); // instead of $order->billing_country; $order->get_shipping_country(); // instead of $order->shipping_country;

El código va en el archivo function.php de su tema hijo activo (o tema) o también en cualquier archivo de complemento.

El código está probado y funciona.

Respuestas relacionadas: