Создаем простую форму подписки без какого-либо плагина. Далее возможны различные варианты применения этого функционала.
Создание формы подписки
// Функция формы подписки if(!function_exists('kv_email_subscription_fn')) { add_action('kv_email_subscription' , 'kv_email_subscription_fn' ); function kv_email_subscription_fn() { if('POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['kv_submit_subscription'])) { if( filter_var($_POST['subscriber_email'], FILTER_VALIDATE_EMAIL) ){ $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $subject = sprintf(__('New Subscription on %s','kvc'), $blogname); $to = get_option('admin_email'); $headers = 'From: '. sprintf(__('%s Admin', 'kvc'), $blogname) .' <No-repy@'.$_SERVER['SERVER_NAME'] .'>' . PHP_EOL; $message = sprintf(__('Hi ,', 'kvc')) . PHP_EOL . PHP_EOL; $message .= sprintf(__('You have a new subscription on your %s website.', 'kvc'), $blogname) . PHP_EOL . PHP_EOL; $message .= __('Email Details', 'kvc') . PHP_EOL; $message .= __('-----------------') . PHP_EOL; $message .= __('User E-mail: ', 'kvc') . stripslashes($_POST['subscriber_email']) . PHP_EOL; $message .= __('Regards,', 'kvc') . PHP_EOL . PHP_EOL; $message .= sprintf(__('Your %s Team', 'kvc'), $blogname) . PHP_EOL; $message .= trailingslashit(get_option('home')) . PHP_EOL . PHP_EOL . PHP_EOL . PHP_EOL; if (wp_mail($to, $subject, $message, $headers)){ echo 'Your e-mail (' . $_POST['subscriber_email'] . ') has been added to our mailing list!'; } else { echo 'There was a problem with your e-mail (' . $_POST['subscriber_email'] . ')'; } }else{ echo 'There was a problem with your e-mail (' . $_POST['subscriber_email'] . ')'; } }?> <div class="col-lg-4 col-md-4 col-sm-4 twitter-widget-area animate-onscroll"> <form id="newsletter-footer" action="" method="POST"> <h5><strong>Sign up</strong> for email updates</h5> <div class="newsletter-form"> <div class="newsletter-email" style="margin-bottom:10px; " > <input type="email" name="subscriber_email" placeholder="Email address"> </div> <div class="newsletter-submit"> <input type="hidden" name="kv_submit_subscription" value="Submit"> <input type="submit" name="submit_form" value="Submit"> </div> </div> </form> </div> <?php } } ?>
Создание шорткода формы подписки
// Создание шорткода подписки add_action( 'init', 'kv_register_shortcode_for_newsletter'); // Регистрация шорткода подписки function kv_register_shortcode_for_newsletter(){ add_shortcode('kv_email_subscriptions', 'kv_email_subscription_fn' ); }
Создание виджета формы подписки
// Создание виджета подписки class Kv_Subscription_widget extends WP_Widget { public function __construct() { $widget_ops = array( 'classname' => 'kv_email_subscription', 'description' => 'A Simple Email Subscription Widget to get subscribers info', ); parent::__construct( 'my_widget', 'Kv Subscriptions', $widget_ops ); } public function widget( $args, $instance ) { echo '<aside>'; do_action('kv_email_subscription'); echo '</aside>'; } } // Регистрация виджета подписки add_action( 'widgets_init', function(){ register_widget( 'Kv_Subscription_widget' ); });
Данное решение взято с сайта www.kvcodes.com
Механизм предложенного решения следующий: после заполнения поля, на ящик администратора приходит письмо с e-mail подписчика.
[site-socialshare]
Приветствую ! а вы могли подсказать куда этот код вставить надо?
Добрый вечер! В файл functions.php
Здравствуйте. Мне нужна форма подписки для сбора почты. Предыдущему комменту, Вы написали «в файл functions.php!. Подскажите-перед каким тегом?
Добрый день! В файле функций нет тэгов. Вставляйте в самый низ. Главное чтобы не пересекался код разных функций.
Здравствуйте. Подскажите, пожалуйста, а возможно ли настроить вывод всего этого великолепия лишь на страницах определенного раздела?