| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- defined('ABSPATH') || exit;
- if (version_compare(phpversion(), '5.3', '<')) {
- return;
- }
- class NewsletterWidgetMinimal extends WP_Widget {
- function __construct() {
- parent::__construct(false, $name = 'Newsletter Minimal', array('description' => 'Newsletter widget to add a minimal subscription form'), array('width' => '350px'));
- }
- function widget($args, $instance) {
- $newsletter = Newsletter::instance();
- $current_language = $newsletter->get_current_language();
- extract($args);
- echo $before_widget;
- if (!is_array($instance)) {
- $instance = array();
- }
- // Filters are used for WPML
- if (!empty($instance['title'])) {
- $title = apply_filters('widget_title', $instance['title'], $instance);
- echo $before_title . $title . $after_title;
- }
- $options_profile = NewsletterSubscription::instance()->get_options('profile', $current_language);
- if (empty($instance['button'])) {
- $instance['button'] = $options_profile['subscribe'];
- }
- $form = '<div class="tnp tnp-widget-minimal">';
- $form .= '<form class="tnp-form" action="' . $newsletter->build_action_url('s') . '" method="post" onsubmit="return newsletter_check(this)">';
- if (isset($instance['nl']) && is_array($instance['nl'])) {
- foreach ($instance['nl'] as $a) {
- $form .= "<input type='hidden' name='nl[]' value='" . ((int) trim($a)) . "'>\n";
- }
- }
- // Referrer
- $form .= '<input type="hidden" name="nr" value="widget-minimal"/>';
- $form .= '<input class="tnp-email" type="email" required name="ne" value="" placeholder="' . esc_attr($options_profile['email']) . '">';
- $form .= '<input class="tnp-submit" type="submit" value="' . esc_attr($instance['button']) . '">';
- $form .= '</form></div>';
- echo $form;
- echo $after_widget;
- }
- function update($new_instance, $old_instance) {
- return $new_instance;
- }
- function form($instance) {
- if (!is_array($instance)) {
- $instance = array();
- }
- $newsletter = Newsletter::instance();
- $current_language = $newsletter->get_current_language();
- $profile_options = NewsletterSubscription::instance()->get_options('profile', $current_language);
- $instance = array_merge(array('title' => '', 'text' => '', 'button' => $profile_options['subscribe'], 'nl' => array()), $instance);
- if (!is_array($instance['nl'])) {
- $instance['nl'] = array();
- }
- ?>
- <p>
- <label for="<?php echo $this->get_field_id('title'); ?>">
- Title:
- <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($instance['title']); ?>">
- </label>
- <label for="<?php echo $this->get_field_id('button'); ?>">
- Button label:
- <input class="widefat" id="<?php echo $this->get_field_id('button'); ?>" name="<?php echo $this->get_field_name('button'); ?>" type="text" value="<?php echo esc_attr($instance['button']); ?>">
- Use a short one!
- </label>
- </p>
- <p>
- <?php _e('Automatically subscribe to', 'newsletter') ?>
- <br>
- <?php
- $lists = Newsletter::instance()->get_lists_public();
- foreach ($lists as $list) {
- ?>
- <label for="nl<?php echo $list->id ?>">
- <input type="checkbox" value="<?php echo $list->id ?>" name="<?php echo $this->get_field_name('nl[]') ?>" <?php echo array_search($list->id, $instance['nl']) !== false ? 'checked' : '' ?>> <?php echo esc_html($list->name) ?>
- </label>
- <br>
- <?php } ?>
- </p>
- <?php
- }
- }
- add_action('widgets_init', function() {
- return register_widget("NewsletterWidgetMinimal");
- });
|