Не знаю, пользуетесь ли Вы таким платным плагином 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 ); } } });