/ Wordpress / Форма подписки без плагина

Форма подписки без плагина

HIT

21.10.2017

3970

5

Создаем простую форму подписки без какого-либо плагина. Далее возможны различные варианты применения этого функционала.

Создание формы подписки

// Функция формы подписки
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 подписчика.

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Contact Form 7

Contact Form 7

Contact Form 7 — очень нужный плагин для модулирования различных форм обратной связи. Имеет множество дополнений. Плагин Contact Form 7 Код вставки формы Отключить обертку в <p> и добавление <br> Читать далее »

/
Ajax форма без плагина

Ajax форма без плагина

Создаем формы без использования плагинов (например Contact Form 7). Делаем форму Ajax. Создание простой формы Добавляем скрипт обработчик (с валидацией полей) Прописываем функцию формы Данное решение взято с сайта inprocess.by Читать далее »

Взаимодействие форм и scripts

Взаимодействие форм и scripts

Для различных задач требуется отслеживать значения форм и полей формы. У каждого поля (input, select, checkbox, radio) есть свои особенности, которые необходимо учитывать. Поле select Сделать нужный option активным из Читать далее »

Добавить комментарий

5 комментариев

  1. Сергей

    Приветствую ! а вы могли подсказать куда этот код вставить надо?

    1. Alexandr

      Добрый вечер! В файл functions.php

  2. Михаил

    Здравствуйте. Мне нужна форма подписки для сбора почты. Предыдущему комменту, Вы написали «в файл functions.php!. Подскажите-перед каким тегом?

    1. Alexandr

      Добрый день! В файле функций нет тэгов. Вставляйте в самый низ. Главное чтобы не пересекался код разных функций.

  3. ООО Альянс-безопасность

    Здравствуйте. Подскажите, пожалуйста, а возможно ли настроить вывод всего этого великолепия лишь на страницах определенного раздела?

Форма подписки без плагина
Изменение формы выбора вариаций
Рекомендации для васИзменение формы выбора вариацийOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.