Skrevet d. 4. maj 2022 af Lennart Christensen

WooCommerce: Deaktiverer “completed” e-mail til kunde på specifikke ordrer

Hvis du har behov for at undlade at sende “completed order” email til kunder på specifikke ordrer, så kan du bruge denne funktion som tjekker om et metafelt er “true. Er det “true” så sender den ikke “completed mail” til kunden på den specifikke ordre.

add_filter( 'woocommerce_email_recipient_customer_completed_order', 'cco_disable_customer_order_email_if_free', 10, 2 );
function cco_disable_customer_order_email_if_free( $recipient, $order ) {
	$page = $_GET['page'] = isset( $_GET['page'] ) ? $_GET['page'] : '';
	if ( 'wc-settings' === $page ) { return $recipient;}
	return ( ( 1 == get_post_meta( $order->get_id(), '_not_send_completed_order_mail', true ) )) ? $recipient = '' : $recipient;
}

// Hvis du vil målrette en anden e-mail, kan du ændre filteret til f.eks: “woocommerce_email_recipient_customer_customer_processing_order”

Hvordan sætter jeg et customfield som jeg kan aftjekke?
Du kan bruge ACF (advanced Custom Fields) til at lave et custom field i WordPress CMS som du kan aftjekke på ordren. Et field med true/false med det nævnte metafield som funktionen skal tjekke op i mod.