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

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

HIT

21.10.2017

2216

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

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Подключаем КЛАДР

Подключаем КЛАДР

Подключаем к сайту систему КЛАДР — это постоянно обновляемая база адресов России. КЛАДР нужен для того, чтобы при вводе первых букв он предлагал варианты заполнения. Причем сделано это довольно интеллектуально, Читать далее »

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

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

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

/
Вложение файла при отправке формы

Вложение файла при отправке формы

Как настроить в WordPress вложение и отправку файла с формы без использования плагинов. Форма с нужным полем для вложения и указанием обработчика: Содержимое файла process_upload.php, на который мы переходим после Читать далее »

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

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

  1. Аватар
    Сергей

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

    1. Alexandr
      Alexandr

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

  2. Аватар
    Михаил

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

    1. Alexandr
      Alexandr

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

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

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

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