Добавляем E-mail покупателя WooCommerce в базу рассылки плагина Mailster

Не знаю, пользуетесь ли Вы таким платным плагином Mailster для организации рассылок с сайта без каких-либо ограничений? Я его выбрал на смену бесплатному Newsletter

У Mailster’а есть синхронизация пользователей WooCommerce и базы рассылки:

но что делать — если на сайте разрешена возможность оформлять заказы без регистрации, а E-mail’ы таких покупателей без регистрации тоже хотелось бы добавлять в базу рассылки. 

Простое решение:

add_action( 'woocommerce_thankyou', function( $order_id ) {
	$order = wc_get_order( $order_id );
	if ( !$order ) return null;
	$order_data = $order->get_data();
	$email = $order_data['billing']['email'];
	if ( !$email ) return null;
	$_first_name = $order_data['billing']['first_name'];
	$_last_name = $order_data['billing']['last_name'];

	//file_put_contents('DEBUG.TXT', "$email $_first_name $_last_name");

	if ( function_exists('mailster') ) {

		$userdata = array(
			'email' => $email,
			'firstname' => $_first_name,
			'lastname' => $_last_name,
			'status' => 1,
		);

		$subscriber_id = mailster( 'subscribers' )->add( $userdata, false );

		// if result isn't a WP_error assign the lists
		if ( ! is_wp_error( $subscriber_id ) ) {

			$list_ids = array( 1 ); // здесь 1 – это ID конкретного списка рассылки (смотрите в админке – в какие списки Вы хотите добавлять – можно через запятую несколько сразу )
			mailster( 'subscribers' )->assign_lists( $subscriber_id, $list_ids );
		}
	}
});
ПОДЕЛИТЬСЯ

Программист, преподаватель, консультант.
Активный фрилансер и тех. директор студии AVGroup.
Фанат WordPress'а, а также всего - что даёт скорость в веб-разработке.