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

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

HIT

21.10.2017

4122

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 подписчика.

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

Contact Form 7

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

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

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

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

Заявка на товар

Заявка на товар

Бывает так, что нам не нужно непосредственно продавать товар через сайт, а только лишь получить на него заявку. Данный механизм прост: нам нужно создать форму обратной связи в которую будет Читать далее »

/

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

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

  1. Сергей

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

    1. Alexandr

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

  2. Михаил

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

    1. Alexandr

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

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

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

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