Estoy tratando de mostrar cupones usados en los correos electrónicos de pedidos de WooCommerce + agregar mensajes específicos basados en los cupones usados.
La visualización de cupones funciona según
Agregue el código de cupón aplicado en la plantilla de correo electrónico de nuevo pedido de administración – WooCommerce
Estoy tratando de expandirlo comprobando si la cadena $coupon_codes
contiene palabras específicas/cupones específicos, en este caso «compra grupal»y luego mostrar un mensaje.
tiene que ser para $coupon_codes
ya que puede (y será) usado con múltiples cupones
Me las arreglé para hacer que funcione con el siguiente código
¿Cómo verifico si una cadena contiene una palabra específica?
El problema es que (strpos) muestra el mensaje cada vez que se usa CUALQUIER cupón, no importa si está escrito en el cupón, y no puedo entender por qué.
Estoy siguiendo la lógica strpos detrás de esta respuesta
// Display used Coupons on Emails and Add GroupPurchase Warning
add_action( 'woocommerce_email_after_order_table', 'display_applied_coupons', 10, 4 );
function display_applied_coupons( $order, $sent_to_admin, $plain_text, $email ) {
// Only for admins and when there at least 1 coupon in the order
if ( ! $sent_to_admin && count($order->get_items('coupon') ) == 0 ) return;
foreach( $order->get_items('coupon') as $coupon ){
$coupon_codes[] = $coupon->get_code();
}
// For one coupon
if( count($coupon_codes) == 1 ){
$coupon_code = reset($coupon_codes);
echo '<p>'.__( 'Used Coupon: ').$coupon_code.'<p>';
}
// For multiple coupons
else {
$coupon_codes = implode( ', ', $coupon_codes);
echo '<p>'.__( 'Used Coupons: ').$coupon_codes.'<p>';
}
if (strpos($coupon_codes, 'groupurchase') !== false) {
echo '<p>' . 'With this coupon you are participating in a group purchase' . '<p>' ;
}
}
.