Código Woocommerce para desactivar envío de e-mail en Orden Completada

Patricio Pantaleo para Paideia Studio
código woocommerce

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.

Deja una respuesta

También te puede interesar

Formulario de revisión modelo