Código Woocommerce
El siguiente código woocommerce te permite deshabilitar el envío de e-mail que por defecto tu tienda Woocommerce ejecuta cuando un pedido u orden pasa del estado Pendiente de Pago a Completado.
Muchas veces, este e-mail no es requerido ya que la información necesaria está en otro e-mail o has creado un e-mail personalizado para esta categoría o un producto dentro de ella y quieres deshabilitar el que viene por defecto.
Para añadir el código Woocommerce en tu instalación WordPress puedes hacerlo directamente en el archivo functions.php de tu tema o mediante un plugin específico para ello. Recomiendo utilizar el plugin Code Snippets ya que es de fácil manejo y permite mantener organizados los códigos en un solo lugar.
A veces los códigos que introduces pueden romper el sitio y mostrarte un error fatal en WordPress. Si esto pasa con algún código y lo agragaste mediante el plugin Code Snippets puedes activar el modo seguro del plugin para que te permita desactivarlo si no puedes ingresar a la sección de administrador. Para esto, en el archivo wp-config.php de tu instalación coloca el siguiente código:
define('CODE_SNIPPETS_SAFE_MODE', true);
Ahora bien, si está todo listo, el código Woocommerce para deshabilitar el envío de e-mails cuando un pedido pasa de Pendiente de Pago a Completado es:
add_action( 'woocommerce_email_enabled_customer_completed_order', 'stop_order_completed_email_for_specific_category', 10, 2 );
function stop_order_completed_email_for_specific_category( $is_enabled, $order_id ) {
if ( ! $order_id ) {
return $is_enabled;
}
$order = wc_get_order( $order_id );
$restricted_category_id = 272; // El ID de la categoría que deseas excluir
// Verificamos si la orden contiene productos de la categoría restringida
foreach( $order->get_items() as $item ) {
$product_id = $item->get_product_id();
if ( has_term( $restricted_category_id, 'product_cat', $product_id ) ) {
// Si la orden contiene productos de la categoría restringida, detenemos el envío del correo
$is_enabled = false;
break;
}
}
return $is_enabled;
}
¿Funcionó para ti? Puedes comentar debajo si este código sigue funcionando. Si quieres implementaciones o desarrollos en WordPress o Woocommerce puedes contactarnos.