daily pastebin goal
59%
SHARE
TWEET

Mailchimp Form

Renu Apr 5th, 2012 65 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3.  
  4. if (function_exists('register_sidebar'))
  5. {
  6.   /* original function with 'name' parameter added */
  7.   register_sidebar(array(
  8.     'name'=>'right',
  9.     'before_widget' => '',
  10.     'after_widget' => '',
  11.     'before_title' => '',
  12.     'after_title' => ''
  13.   ));
  14.  
  15. /* new code copy and pasted from above with name change */
  16.   register_sidebar(array(
  17.     'name'=>'left',
  18.     'before_widget' => '',
  19.     'after_widget' => '',
  20.     'before_title' => '',
  21.     'after_title' => ''
  22.   ));
  23.  
  24. }
  25.  
  26.  
  27. function createMCForm() {
  28.         return '
  29.         <div id="formcont">                            
  30.                 <form id="myform">
  31.  
  32.                         <h1>Sign Up to Receive Exclusive <br />
  33.                                 News & Updates
  34.                         </h1>
  35.  
  36.                         <fieldset>
  37.                                 <h2>Get the Best Updates</h2>
  38.            
  39.                                 <p class="input">
  40.                                         <span>
  41.                                                 <img src="Images/mail_icon.png" class="mail_icon" title="" alt="" />
  42.  
  43.                                                 <input type="email" name="EMAIL" class="Email" id="email" />
  44.                                         </span>
  45.                                        
  46.                                         <input type="hidden" name="action" value="ajax_action" />
  47.                                         <input type="submit" value="" name="subscribe" class="button" id="submit_button" />
  48.                                 </p>  
  49.                                        
  50.                                
  51.                         </fieldset>
  52.                 </form>
  53.         </div>
  54.         <div id="output"></div>';
  55. }
  56. add_shortcode('MCform', 'createMCForm');
  57.  
  58.  
  59.  
  60.  
  61. wp_enqueue_script( 'ajax-script', plugin_dir_url(__FILE__).'mailchimp.js', array('jquery'), 1.0 ); // jQuery will be included automatically
  62.  
  63.  
  64. wp_localize_script( 'ajax-script', 'ajax_object', array(
  65.                                 'ajaxurl' => admin_url( 'admin-ajax.php' ),
  66.                                 'errorEmpty' => __( 'The e-mail field is required' ),
  67.                                 'errorEmail' => __( 'The entered e-mail address is not valid.' )
  68.                 )
  69. );
  70.  
  71.  
  72.  
  73.  
  74. add_action( 'wp_ajax_ajax_action', 'ajax_action_stuff' ); // ajax for logged in users
  75. add_action( 'wp_ajax_nopriv_ajax_action', 'ajax_action_stuff' ); // ajax for not logged in users
  76.  
  77. function ajax_action_stuff() {
  78.         $resp['status'] = 'error';
  79.         $resp['errmessage'] = '';
  80.         $apikey = 'API KEY REMOVED';
  81.         $listID = 'LIST ID REMOVED';
  82.         if (!empty($_POST['email']) && !empty($_POST['name'])) {
  83.  
  84.                 $name = $_POST['name'];
  85.                 $lname = $_POST['lname'];
  86.                 $email = $_POST['email'];
  87.  
  88.                 $url = sprintf('http://api.mailchimp.com/1.2/?method=listSubscribe&apikey=%s&id=%s&email_address=%s&merge_vars[OPTINIP]=%s&output=json&merge_vars[FNAME]=%s&merge_vars[LNAME]=%s', $apikey, $listID, $email, $_SERVER['REMOTE_ADDR'], $name, $lname);
  89.                 $ch = curl_init($url);
  90.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  91.                 $data = curl_exec($ch);
  92.                 curl_close($ch);
  93.                 $arr = json_decode($data, true);
  94.                 if ($arr == 1) {
  95.                         $resp['errmessage'] = 'Check now your e-mail and confirm your subsciption.';
  96.                         $resp['status'] = 'success';
  97.                 } else {
  98.                         switch ($arr['code']) {
  99.                                 case 214:
  100.                                 $resp['errmessage'] = 'You are already subscribed.';
  101.                                 break;
  102.                                 // check the MailChimp API for more options
  103.                                 default:
  104.                                 $resp['errmessage'] = 'Unkown error...';
  105.                                 break;                 
  106.                         }
  107.                 }
  108.         } else {
  109.                 $resp['errmessage'] = 'Missing required fields!';
  110.         }
  111.         header( "Content-Type: application/json" );
  112.         echo json_encode($resp);
  113.         exit;
  114. }
  115.  
  116. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top