Změna textu v patičce e-mailu na základě uživatelské role

WooCommerce obsahuje nastavení, které umožňuje vložit do patičky každého e-mailu vlastní text. Ten je společný pro všechny e-maily. Pomocí kódu budeme upravovat text podle toho, jakou uživatelskou roli má uživatel.

WooCommerce má vlastní nastavení pro všechny e-maily:

Protože je stejný pro každý e-mail, budeme jej měnit dynamicky.

Řekněme, že máte na e-shopu různé uživatelské úrovně a chcete pro ně personalizovat text v patičce. Obdobně to může fungovat, i když budete mít tzv. multivendor e-shop.

Použijeme filter woocommerce_email_footer_text a pomocí získané role, upravíme text v patičce e-mailu.

Bohužel, tento filter má problém v tom, že přijímá pouze hodnotu nastavení. Proto musíme nejprve vytvořit vlastní globální proměnou, do níž vložíme id objednávky:

add_action( 'woocommerce_email_before_order_table', 'musilda_email_order_id_as_a_global', 1, 1 );
function musilda_email_order_id_as_a_global( $order ){
    $GLOBALS['order_id_str'] = $order->get_id();
}

Tím jsme získali přístup k id objednávky i v příslušném filteru a můžeme napsat funkci:

add_action( 'woocommerce_email_footer_text', 'custom_email_footer_text', 10, 1 );
function custom_email_footer_text( $footer_text ){

   	if ( !empty( $GLOBALS['order_id_str'] ) ) {
    	
		$order_id = (int)$GLOBALS['order_id_str'];
		$order = wc_get_order( $order_id );
		$customer_id = $order->get_customer_id();
		$user_data = get_userdata( $customer_id );
    	if ( in_array( 'wholesale_customer', $user_data->roles )  ) {
			$footer_text = __( 'Text v patičce e-mailu pro odběratele', 'musilda' );
		}
    
	}

    return $footer_text;

}

Díky uživatelské roli se pak bude zobrazovat v patičce odlišný text.

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *