WordPress.org

Ready to get started?Download WordPress

Forums

Mail Subscribe List
Mark field as required * (3 posts)

  1. secondparallel
    Member
    Posted 6 months ago #

    Hi,
    this is a really nice simple plugin but I'm wondering if its possible to make fields 'required' - such as: name* and email address*.
    Thanks.

    http://wordpress.org/plugins/mail-subscribe-list/

  2. vrsotto
    Member
    Posted 5 months ago #

    yea, it should have a field validation :)

  3. erashishkatoch
    Member
    Posted 3 weeks ago #

    Validation is used for email and name
    go to installed plugin through Admin Panel

    Edit "Editing mail-subscribe-list"

    Editing mail-subscribe-list/sml.php
    <?php
    /*
    Plugin Name: Mail Subscribe List
    Plugin URI: http://www.webfwd.co.uk/packages/wordpress-hosting/
    Description: Simple customisable plugin that displays a name/email form where visitors can submit their information, managable in the WordPress admin.
    Version: 2.1.1
    Author: Richard Leishman t/a Webforward
    Author URI: http://www.webfwd.co.uk/
    License: GPL

    Copyright 2012 Richard Leishman t/a Webforward (email : richard@webfwd.co.uk)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    GNU General Public License: http://www.gnu.org/licenses/gpl.html

    */

    // Plugin Activation
    function sml_install() {
    global $wpdb;
    $table = $wpdb->prefix."sml";
    $structure = "CREATE TABLE $table (
    id INT(9) NOT NULL AUTO_INCREMENT,
    sml_name VARCHAR(200) NOT NULL,
    sml_email VARCHAR(200) NOT NULL,
    UNIQUE KEY id (id)
    );";
    $wpdb->query($structure);

    }
    register_activation_hook( __FILE__, 'sml_install' );

    // Plugin Deactivation
    function sml_uninstall() {
    global $wpdb;

    }
    register_deactivation_hook( __FILE__, 'sml_uninstall' );

    // Left Menu Button
    function register_sml_menu() {
    add_menu_page('Subscribers', 'Subscribers', 'add_users', dirname(__FILE__).'/index.php', '', plugins_url('sml-admin-icon.png', __FILE__), 58.122);
    }
    add_action('admin_menu', 'register_sml_menu');

    // Generate Subscribe Form

    function smlsubform($atts=array()){
    extract(shortcode_atts(array(
    "prepend" => '',
    "showname" => true,
    "nametxt" => 'Name:',
    "nameholder" => 'Name...',
    "emailtxt" => 'Email:',
    "emailholder" => 'Email Address...',
    "showsubmit" => true,
    "submittxt" => 'Submit',
    "jsthanks" => false,
    "thankyou" => 'Thank you for subscribing to our mailing list'
    ), $atts));
    ?>
    <script>
    function validateForm()
    {
    final = true;
    var x=document.forms["myForm"]["sml_name"].value;
    var x2=document.forms["myForm"]["sml_email"].value;
    var atpos=x2.indexOf("@");
    var dotpos=x2.lastIndexOf(".");
    if (x==null || x=="")
    {
    alert("First name must be filled out");
    final= false;
    }
    if(x2==null || x2=="")
    {
    alert("Email name must be filled out");
    final= false;
    }
    else if(atpos<1 || dotpos<atpos+2 || dotpos+2>=x2.length)
    {
    alert("Email is not valid");
    final= false;
    }
    return final;
    }
    </script>
    <?php
    $return = '<form class="sml_subscribe" method="post" name="myForm" onsubmit="return validateForm()"><input class="sml_hiddenfield" name="sml_subscribe" type="hidden" value="1">';

    if ($prepend) $return .= '<p class="prepend">'.$prepend.'</p>';

    if ($_POST['sml_subscribe'] && $thankyou) {
    if ($jsthanks) {
    $return .= "<script>window.onload = function() { alert('".$thankyou."'); }</script>";
    } else {
    $return .= '<p class="sml_thankyou">'.$thankyou.'</p>';
    }
    }

    if ($showname) $return .= '<p class="sml_name"><label class="sml_namelabel" for="sml_name">'.$nametxt.'</label><input class="sml_nameinput" placeholder="'.$nameholder.'" name="sml_name" type="text" value="" style="color:#000000; border-radius: 8px;"></p>';
    $return .= '<p class="sml_email"><label class="sml_emaillabel" for="sml_email">'.$emailtxt.'</label><input class="sml_emailinput" name="sml_email" placeholder="'.$emailholder.'" type="text" value="" style="color:#000000; border-radius: 8px;"></p>';
    if ($showsubmit) $return .= '<p class="sml_submit"><input name="submit" class="btn sml_submitbtn" type="submit" value="'.($submittxt?$submittxt:'Submit').'" style="color:#000000; border-radius: 8px;"></p>';
    $return .= '</form>';

    return $return;
    }
    add_shortcode( 'smlsubform', 'smlsubform' );

    // Ability to use the shortcode within the text widget, - Suggested by Joel Dare, Thank you.
    add_filter('widget_text', 'do_shortcode', 11);

    //////

    // Lets create a WordPress Widget

    // Widget Controller

    function sml_subscribe_widget_control($args=array(), $params=array()) {

    if (isset($_POST['sml_subscribe_submitted']) && current_user_can('edit_theme_options')) {
    update_option('sml_subscribe_widget_title', $_POST['sml_subscribe_widget_title']);
    update_option('sml_subscribe_widget_prepend', $_POST['sml_subscribe_widget_prepend']);
    update_option('sml_subscribe_widget_jsthanks', $_POST['sml_subscribe_widget_jsthanks']);
    update_option('sml_subscribe_widget_thankyou', $_POST['sml_subscribe_widget_thankyou']);
    update_option('sml_subscribe_widget_showname', $_POST['sml_subscribe_widget_showname']);
    update_option('sml_subscribe_widget_nametxt', $_POST['sml_subscribe_widget_nametxt']);
    update_option('sml_subscribe_widget_nameholder', $_POST['sml_subscribe_widget_nameholder']);
    update_option('sml_subscribe_widget_emailtxt', $_POST['sml_subscribe_widget_emailtxt']);
    update_option('sml_subscribe_widget_emailholder', $_POST['sml_subscribe_widget_emailholder']);
    update_option('sml_subscribe_widget_showsubmit', $_POST['sml_subscribe_widget_showsubmit']);
    update_option('sml_subscribe_widget_submittxt', $_POST['sml_subscribe_widget_submittxt']);
    }

    $sml_subscribe_widget_title = get_option('sml_subscribe_widget_title');
    $sml_subscribe_widget_prepend = get_option('sml_subscribe_widget_prepend');
    $sml_subscribe_widget_jsthanks = get_option('sml_subscribe_widget_jsthanks');
    $sml_subscribe_widget_thankyou = get_option('sml_subscribe_widget_thankyou');
    $sml_subscribe_widget_showname = get_option('sml_subscribe_widget_showname');
    $sml_subscribe_widget_nametxt = get_option('sml_subscribe_widget_nametxt');
    $sml_subscribe_widget_nameholder = get_option('sml_subscribe_widget_nameholder');
    $sml_subscribe_widget_emailtxt = get_option('sml_subscribe_widget_emailtxt');
    $sml_subscribe_widget_emailholder = get_option('sml_subscribe_widget_emailholder');
    $sml_subscribe_widget_showsubmit = get_option('sml_subscribe_widget_showsubmit');
    $sml_subscribe_widget_submittxt = get_option('sml_subscribe_widget_submittxt');
    ?>

    Title:
    <textarea class="widefat sml_subscribe_widget_title" rows="5" name="sml_subscribe_widget_title"><?php echo stripslashes($sml_subscribe_widget_title); ?></textarea>

    Header Text:
    <textarea class="widefat sml_subscribe_widget_prepend" rows="5" name="sml_subscribe_widget_prepend"><?php echo stripslashes($sml_subscribe_widget_prepend); ?></textarea>

    Thank You Type
    <select class="sml_subscribe_widget_jsthanks" name="sml_subscribe_widget_jsthanks">
    <option <?php echo ($sml_subscribe_widget_jsthanks?'selected="selected"':''); ?> value="1">JavaScript Alert</option>
    <option <?php echo (!$sml_subscribe_widget_jsthanks?'selected="selected"':''); ?> value="0">Widget Header</option>
    </select>

    Thank You Message
    <textarea class="widefat sml_subscribe_widget_thankyou" rows="5" name="sml_subscribe_widget_thankyou"><?php echo stripslashes($sml_subscribe_widget_thankyou); ?></textarea>

    Show Name Field <input class="sml_subscribe_widget_showname" name="sml_subscribe_widget_showname" type="checkbox"<?php echo $sml_subscribe_widget_showname?'checked="checked"':''; ?> />

    <div class="sml_subscribe_nameoptions" style="display:none">

    Name Label text
    <input type="text" class="widefat sml_subscribe_widget_nametxt" name="sml_subscribe_widget_nametxt" value="<?php echo stripslashes($sml_subscribe_widget_nametxt); ?>" />

    Name Placeholder Text
    <input type="text" class="widefat sml_subscribe_widget_nameholder" name="sml_subscribe_widget_nameholder" value="<?php echo stripslashes($sml_subscribe_widget_nameholder); ?>" />

    </div>

    Email Label Text
    <input type="text" class="widefat sml_subscribe_widget_emailtxt" name="sml_subscribe_widget_emailtxt" value="<?php echo stripslashes($sml_subscribe_widget_emailtxt); ?>" />

    Email Placeholder Text
    <input type="text" class="widefat sml_subscribe_widget_emailholder" name="sml_subscribe_widget_emailholder" value="<?php echo stripslashes($sml_subscribe_widget_emailholder); ?>" />

    Show Submit Button <input class="sml_subscribe_widget_showsubmit" name="sml_subscribe_widget_showsubmit" type="checkbox"<?php echo $sml_subscribe_widget_showsubmit?'checked="checked"':''; ?> />

    <div class="sml_subscribe_submitoptions" style="display:none">

    Submit Button Text
    <input type="text" class="widefat sml_subscribe_widget_submittxt" name="sml_subscribe_widget_submittxt" value="<?php echo stripslashes($sml_subscribe_widget_submittxt); ?>" />

    </div>

    <input type="hidden" name="sml_subscribe_submitted" value="1" />
    <script>
    function sml_subscribe_nameoptions_check() {
    if (jQuery('.sml_subscribe_widget_showname').is(':checked')) jQuery(".sml_subscribe_nameoptions").fadeIn();
    else jQuery(".sml_subscribe_nameoptions").fadeOut();
    }
    function sml_subscribe_submitoptions_check() {
    if (jQuery('.sml_subscribe_widget_showsubmit').is(':checked')) jQuery(".sml_subscribe_submitoptions").fadeIn();
    else jQuery(".sml_subscribe_submitoptions").fadeOut();
    }
    jQuery(document).ready(function(){
    sml_subscribe_nameoptions_check();
    sml_subscribe_submitoptions_check();
    jQuery(".sml_subscribe_widget_showname").click(function(){ sml_subscribe_nameoptions_check(); });
    jQuery(".sml_subscribe_widget_showsubmit").click(function(){ sml_subscribe_submitoptions_check(); });
    });
    </script>
    <?php
    }

    wp_register_widget_control(
    'sml_subscribe_widget',
    'sml_subscribe_widget',
    'sml_subscribe_widget_control'
    );

    // Widget Display

    function sml_subscribe_widget_display($args=array(), $params=array()) {

    $sml_subscribe_widget_title = get_option('sml_subscribe_widget_title');
    $sml_subscribe_widget_prepend = get_option('sml_subscribe_widget_prepend');
    $sml_subscribe_widget_jsthanks = get_option('sml_subscribe_widget_jsthanks');
    $sml_subscribe_widget_thankyou = get_option('sml_subscribe_widget_thankyou');
    $sml_subscribe_widget_showname = get_option('sml_subscribe_widget_showname');
    $sml_subscribe_widget_nametxt = get_option('sml_subscribe_widget_nametxt');
    $sml_subscribe_widget_nameholder = get_option('sml_subscribe_widget_nameholder');
    $sml_subscribe_widget_emailtxt = get_option('sml_subscribe_widget_emailtxt');
    $sml_subscribe_widget_emailholder = get_option('sml_subscribe_widget_emailholder');
    $sml_subscribe_widget_showsubmit = get_option('sml_subscribe_widget_showsubmit');
    $sml_subscribe_widget_submittxt = get_option('sml_subscribe_widget_submittxt');

    //widget output
    echo stripslashes($args['before_widget']);

    echo stripslashes($args['before_title']);
    echo stripslashes($sml_subscribe_widget_title);
    echo stripslashes($args['after_title']);

    echo '<div class="textwidget">';

    $argss = array(
    'prepend' => $sml_subscribe_widget_prepend,
    'showname' => $sml_subscribe_widget_showname,
    'nametxt' => $sml_subscribe_widget_nametxt,
    'nameholder' => $sml_subscribe_widget_nameholder,
    'emailtxt' => $sml_subscribe_widget_emailtxt,
    'emailholder' => $sml_subscribe_widget_emailholder,
    'showsubmit' => $sml_subscribe_widget_showsubmit,
    'submittxt' => $sml_subscribe_widget_submittxt,
    'jsthanks' => $sml_subscribe_widget_jsthanks,
    'thankyou' => $sml_subscribe_widget_thankyou
    );
    echo smlsubform($argss);

    echo '</div>';
    echo stripslashes($args['after_widget']);
    }

    wp_register_sidebar_widget(
    'sml_subscribe_widget',
    'Subscribe Form',
    'sml_subscribe_widget_display',
    array(
    'description' => 'Display Subscribe Form'
    )
    );

    /////////

    // Handle form Post
    if ($_POST['sml_subscribe']) {
    $name = $_POST['sml_name'];
    $email = $_POST['sml_email'];
    if (is_email($email)) {

    $exists = mysql_query("SELECT * FROM ".$wpdb->prefix."sml where sml_email like '".$wpdb->escape($email)."' limit 1");
    if (mysql_num_rows($exists) <1) {
    $wpdb->query("insert into ".$wpdb->prefix."sml (sml_name, sml_email) values ('".$wpdb->escape($name)."', '".$wpdb->escape($email)."')");
    }
    }
    }

    function plugin_get_version() {
    $plugin_data = get_plugin_data( __FILE__ );
    $plugin_version = $plugin_data['Version'];
    return $plugin_version;
    }

    ?>

    //END

    Copy this whole code

Reply

You must log in to post.

About this Plugin

About this Topic

Tags

No tags yet.