Esempio n. 1
0
 /**
  * Factory method for NewsletterSignUp class. Only instantiate once.
  *
  * @return NewsletterSignUp Instance of Newsletter Sign-Up class
  */
 public static function instance()
 {
     if (!self::$instance) {
         self::$instance = new NSU();
     }
     return self::$instance;
 }
Esempio n. 2
0
        function widget($args, $instance)
        {
            /* Get Newsletter Sign-up options */
            $options = get_option('nsu_form');
            /* Provide some defaults */
            $defaults = array('title' => 'Sign up for our newsletter!', 'text_before_form' => '', 'text_after_form' => '');
            $instance = wp_parse_args((array) $instance, $defaults);
            extract($args);
            extract($instance);
            $title = apply_filters('widget_title', $title);
            echo $before_widget;
            echo $before_title . $title . $after_title;
            if (!empty($text_before_form)) {
                ?>
<div class="nsu-text-before-form"><?php 
                $instance['filter'] ? _e(wpautop($text_before_form), 'nsu-widget') : _e($text_before_form, 'nsu-widget');
                ?>
</div><?php 
            }
            NSU::form()->output_form(true);
            if (!empty($text_after_form)) {
                ?>
<div class="nsu-text-after-form"><?php 
                $instance['filter'] ? _e(wpautop($text_after_form), 'nsu-widget') : _e($text_after_form, 'nsu-widget');
                ?>
</div><?php 
            }
            echo $after_widget;
        }
Esempio n. 3
0
 public function __construct()
 {
     $this->options = NSU::instance()->get_options();
     add_filter("plugin_action_links_{$this->filename}", array($this, 'add_settings_link'));
     add_action('admin_menu', array($this, 'add_option_page'));
     add_action('admin_init', array($this, 'settings_init'));
     add_action('admin_enqueue_scripts', array($this, 'load_css_and_js'));
     add_action('bp_include', array($this, 'set_bp_active'));
     if (isset($_GET['nsu-hide-mc4wp-notice'])) {
         add_option("nsu_hide_mc4wp_notice", true);
     } elseif ($this->options['mailinglist']['provider'] == 'mailchimp' && get_option('nsu_hide_mc4wp_notice') == false) {
         add_action('admin_notices', array($this, 'notice_mailchimp_for_wp'));
     }
 }
Esempio n. 4
0
	public function subscribe_from_bbpress( $anonymous_data, $user_id ) {
		// only act if sign-up checkbox was checked
		if ( ! isset( $_POST['newsletter-sign-up-do'] ) || $_POST['newsletter-sign-up-do'] != 1 ) {
			return false;
		}

		if ( $anonymous_data ) {

			$email = $anonymous_data['bbp_anonymous_email'];
			$name  = $anonymous_data['bbp_anonymous_name'];

		} elseif ( $user_id ) {

			$user_info = get_userdata( $user_id );
			$email     = $user_info->user_email;
			$name      = $user_info->first_name . ' ' . $user_info->last_name;

		} else {
			return false;
		}

		return NSU::instance()->send_post_data( $email, $name );
	}
Esempio n. 5
0
 /**
  * Generate the HTML for a form
  *
  * @param boolean $echo Should HTML be echo'ed?
  *
  * @return string The generated HTML
  */
 public function output_form($echo = true)
 {
     $errors = $this->validation_errors;
     $opts = NSU::instance()->get_options();
     $additional_fields = '';
     $output = "\n<!-- Form by Newsletter Sign-Up v" . NSU_VERSION_NUMBER . " - https://wordpress.org/plugins/newsletter-sign-up/ -->\n";
     $formno = $this->number_of_forms++;
     /* Set up form variables for API usage or normal form */
     if ($opts['mailinglist']['use_api'] == 1) {
         /* Using API, send form request to ANY page */
         $form_action = '';
         $email_id = 'nsu_email';
         $name_id = 'nsu_name';
     } else {
         /* Using normal form request, set-up using configuration settings */
         $form_action = $opts['mailinglist']['form_action'];
         $email_id = $opts['mailinglist']['email_id'];
         if (!empty($opts['mailinglist']['name_id'])) {
             $name_id = $opts['mailinglist']['name_id'];
         }
     }
     /* Set up additional fields */
     if (isset($opts['mailinglist']['extra_data']) && is_array($opts['mailinglist']['extra_data'])) {
         foreach ($opts['mailinglist']['extra_data'] as $ed) {
             if ($ed['value'] === '%%NAME%%') {
                 continue;
             }
             $ed['value'] = str_replace("%%IP%%", $_SERVER['REMOTE_ADDR'], $ed['value']);
             $additional_fields .= "<input type=\"hidden\" name=\"{$ed['name']}\" value=\"{$ed['value']}\" />";
         }
     }
     $email_label = __($opts['form']['email_label'], 'nsu');
     $name_label = __($opts['form']['name_label'], 'nsu');
     if ($opts['form']['use_html5']) {
         $email_type = 'email';
         $email_atts = 'placeholder="' . esc_attr($opts['form']['email_default_value']) . '" required';
         $name_atts = 'placeholder="' . esc_attr($opts['form']['name_default_value']) . '" ';
         if ($opts['form']['name_required']) {
             $name_atts .= 'required ';
         }
     } else {
         $email_type = 'text';
         $email_value = $opts['form']['email_default_value'];
         $email_atts = 'value="' . esc_attr($email_value) . '"';
         $name_value = $opts['form']['name_default_value'];
         $name_atts = 'value="' . esc_attr($name_value) . '"';
     }
     $submit_button = $opts['form']['submit_button'];
     $text_after_signup = $opts['form']['text_after_signup'];
     $text_after_signup = $opts['form']['wpautop'] == 1 ? wpautop(wptexturize($text_after_signup)) : $text_after_signup;
     // check if form was not submitted or contains error
     if (!isset($_POST['nsu_submit']) || count($errors) > 0) {
         $output .= '<form class="nsu-form" id="nsu-form-' . esc_attr($formno) . '" action="' . esc_attr($form_action) . '" method="post">';
         if ($opts['mailinglist']['subscribe_with_name'] == 1) {
             $output .= '<p><label for="nsu-name-' . esc_attr($formno) . '">' . esc_html($name_label) . '</label>';
             $output .= '<input class="nsu-field" id="nsu-name-"' . $formno . '" type="text" name="' . esc_attr($name_id) . '" ' . $name_atts;
             if (!$opts['form']['use_html5']) {
                 $output .= "onblur=\"if(!this.value) this.value = '{$name_value}';\" onfocus=\"if(this.value == '{$name_value}') this.value=''\" ";
             }
             $output .= "/>";
             if (isset($errors['name-field'])) {
                 $output .= '<span class="nsu-error error notice">' . $errors['name-field'] . '</span>';
             }
             $output .= "</p>";
         }
         $output .= "<p><label for=\"nsu-email-{$formno}\">{$email_label}</label><input class=\"nsu-field\" id=\"nsu-email-{$formno}\" type=\"{$email_type}\" name=\"{$email_id}\" {$email_atts} ";
         if (!$opts['form']['use_html5']) {
             $output .= "onblur=\"if(!this.value) this.value = '{$email_value}';\" onfocus=\"if(this.value == '{$email_value}') this.value = ''\" ";
         }
         $output .= "/>";
         if (isset($errors['email-field'])) {
             $output .= '<span class="nsu-error error notice">' . $errors['email-field'] . '</span>';
         }
         $output .= "</p>";
         $output .= $additional_fields;
         $output .= '<textarea name="nsu_robocop" style="display: none;"></textarea>';
         $output .= "<p><input type=\"submit\" id=\"nsu-submit-{$formno}\" class=\"nsu-submit\" name=\"nsu_submit\" value=\"{$submit_button}\" /></p>";
         $output .= "</form>";
     } else {
         // form has been submitted
         $output .= "<p id=\"nsu-signed-up-{$formno}\" class=\"nsu-signed-up\">" . $text_after_signup . "</p>";
     }
     $output .= "\n<!-- / Newsletter Sign-Up -->\n";
     if ($echo) {
         echo $output;
     }
     return $output;
 }
Esempio n. 6
0
	function nsu_form() {
		NSU::form()->output_form(true);
	}