_plugin_activated=false; $settings=get_option("awp_plugins"); if(get_option("awp_plugins")!=="false"){ if($settings["newsletters"]) $this->_plugin_activated=true; } } /** * Returns plugin instance * * @return AWP_ContactForms */ function &instance() { static $instances = array(); if (!isset($instances[0])) { $class = __CLASS__; $instances[0] = & new $class(); } return $instances[0]; } /** * Runs plugin */ function run() { if($this->_plugin_activated){ add_action( 'widgets_init',array(&$this,'register_widget')); //initialize widget add_action('the_posts', array( &$this,'check_for_shortcode' )); // check shortcode add_shortcode('apptivonewsletterform', array(&$this,'shownewsletterform')); } } function shownewsletterform($atts){ $this->loadscripts(); extract(shortcode_atts(array('name'=> ''), $atts)); $formname=trim($name); $content=""; $successmsg=""; $newsletterform=$this->get_newsletterform_fields($formname); $submitformname=$_POST['awp_newsletterformname']; if(isset($_POST['awp_newsletterform_submit']) && $submitformname==$formname){ $successmsg= $this->save_newsletter($submitformname); } ob_start(); if(!empty($newsletterform) && !empty($newsletterform[fields]) ){ include $newsletterform['templatefile']; }else{ echo awp_messagelist('newsletter-display-page'); } $content = ob_get_clean(); return $content; } function save_newsletter($formname){ $newsletterform=$this->get_newsletterform_fields($formname); if(!empty($newsletterform)){ $newsletterformfields=$newsletterform['fields']; //Process the $_POST here.. $submittedformvalues=array(); $submittedformvalues['category'] = $_POST['newsletter_category']; foreach($newsletterformfields as $field) { $fieldid=$field['fieldid']; if($fieldid=='newsletter_phone'){ if(isset($_POST[$formname.'_newsletter_phone1'])) { $submittedformvalues[$fieldid]= $_POST[$formname.'_newsletter_phone1'].$_POST[$formname.'_newsletter_phone2'].$_POST[$formname.'_newsletter_phone3']; } else { $submittedformvalues[$fieldid]= $_POST[$fieldid]; } } else { $submittedformvalues[$fieldid]= stripslashes($_POST[$fieldid]); } } //Submit the $submittedformvalues to Apptivo Lead Webservice //Dont forgot to save the contact form name as Lead Source value $category = $submittedformvalues[category]; $firstname = $submittedformvalues[newsletter_firstname]; $lastname = $submittedformvalues[newsletter_lastname]; $email = $submittedformvalues[newsletter_email]; $phoneNumber = $submittedformvalues[newsletter_phone]; $comments = $submittedformvalues[newsletter_comments]; if(!empty($email)){ $response = createTargetList($category, $firstname, $lastname,$email,$phoneNumber,$comments); $confmsg = $response->return->responseMessage; } if($response == 'E_100') { echo awp_messagelist('newslettertarget-display-page'); }else if($response == 'E_N001' || $response == 'E_N002' ) { echo awp_messagelist('newsletter-target-error'); }else if($response == 'E_IP') { echo awp_messagelist('IP_banned'); }else if(!empty($confmsg) && $confmsg != "Email already registered"){ if(!empty($newsletterform[confmsg])){ $confmsg = $newsletterform[confmsg]; } } } return $confmsg; } function get_newsletterform_fields($formname){ $formExists=""; $newsletter_forms=array(); $newsletterform=array(); $newsletterformdetails=array(); $formname=trim($formname); $newsletter_forms=get_option('awp_newsletterforms'); if($formname=="") $formExists=""; else if(!empty($newsletter_forms)) $formExists = awp_recursive_array_search($newsletter_forms,$formname,'name' ); if(trim($formExists)!=="" ){ $newsletterform=$newsletter_forms[$formExists]; //build contactformdetails array $newsletterformdetails['name']=$newsletterform['name']; //add properties $newsletterformproperties=$newsletterform['properties']; $newsletterformdetails['tmpltype']=$newsletterformproperties['tmpltype']; $newsletterformdetails['layout']=$newsletterformproperties['layout']; $newsletterformdetails['confmsg']=$newsletterformproperties['confmsg']; $newsletterformdetails['css']=$newsletterformproperties['css']; $newsletterformdetails['category']=$newsletterformproperties['category']; $newsletterformdetails['submit_button_type']=$newsletterformproperties['submit_button_type']; $newsletterformdetails['submit_button_val']=$newsletterformproperties['submit_button_val']; //include newsletter template files. if($newsletterformproperties['tmpltype']=="awp_plugin_template") : $templatefile=AWP_NEWSLETTER_TEMPLATEPATH."/".$newsletterformproperties['layout']; //plugin template else : $templatefile=TEMPLATEPATH."/newsletter/".$newsletterformproperties['layout']; //theme template endif; $newsletterformdetails['templatefile']=$templatefile; //add fields $newsletterformfields=$newsletterform['fields']; if(!empty($newsletterformfields)){ //usort($newsletterformfields, "awp_sort_by_order"); $newnewsletterformfields=array(); foreach( $newsletterformfields as $newsletterformfield ) { $fieldinfo= $this->get_master_newsformfield($newsletterformfield['fieldid']); if(trim($newsletterformfield['showtext'])=="") $newsletterformfield['showtext']=$fieldinfo['showtext']; if(trim($newsletterformfield['required'])=="") $newsletterformfield['required']=0; $newsletterformfield['validation']=$fieldinfo['validation']; $newsletterformfield['fieldtype']=$fieldinfo['fieldtype']; array_push($newnewsletterformfields,$newsletterformfield); } usort($newnewsletterformfields, "awp_sort_by_order"); $newsletterformdetails['fields']=$newnewsletterformfields; } } return $newsletterformdetails; } function get_master_newsformfield($fieldid){ $masterfields=$this->get_master_newsletterform_fields(); $fieldinfo=array(); $fieldid=trim($fieldid); if($fieldid!=""){ $formExists=""; $formExists = awp_recursive_array_search($masterfields,$fieldid,'fieldid' ); if(trim($formExists)!=="" ){ $fieldinfo['validation']=$masterfields[$formExists]['validation']; $fieldinfo['fieldtype']=$masterfields[$formExists]['fieldtype']; $fieldinfo['showtext']=$masterfields[$formExists]['defaulttext']; } } return $fieldinfo; } function awp_getnewsletterletter_settings($title){ $formExists=""; $newsletter_forms=array(); $newsletterform=array(); $formname=trim($title); $newsletter_forms=get_option('awp_newsletterforms'); if($formname=="") $formExists=""; else if(!empty($newsletter_forms)) $formExists = awp_recursive_array_search($newsletter_forms,$formname,'name' ); if(trim($formExists)!=="" ){ $newsletterform=$newsletter_forms[$formExists]; } return $newsletterform; } function get_master_newsletterform_fields() { $fields = array( array('fieldid' => 'newsletter_firstname','fieldname' => 'First Name','defaulttext' => 'First Name','showorder' => '1','validation' => 'text','fieldtype' => 'text'), array('fieldid' => 'newsletter_lastname','fieldname' => 'Last Name','defaulttext' => 'Last Name','showorder' => '2','validation' => 'text','fieldtype' => 'text'), array('fieldid' => 'newsletter_email','fieldname' => 'Email','defaulttext' => 'Email','showorder' => '3','validation' => 'email','fieldtype' => 'text'), array('fieldid' => 'newsletter_phone','fieldname' => 'Phone','defaulttext' => 'Phone','showorder' => '4','validation' => 'number','fieldtype' => 'text'), array('fieldid' => 'newsletter_comments','fieldname' => 'Comments','defaulttext' => 'Comments','showorder' => '5','validation' => 'text','fieldtype' => 'textarea') ); return $fields; } function options(){ // Delete form Name: if($_POST['delformname']) { if(strlen(trim($_POST['delformname'])) != 0) { $formname = $_POST['delformname']; $newsletter_forms=get_option('awp_newsletterforms'); //get Key value. $formExists = awp_recursive_array_search($newsletter_forms,$formname,'name' ); if(isset($formExists)) { unset($newsletter_forms[$formExists]); } $newsletter_sort_form = array(); foreach($newsletter_forms as $news_forms_tosort ) { array_push($newsletter_sort_form,$news_forms_tosort); } update_option('awp_newsletterforms', $newsletter_sort_form); $updatemessage= 'Newsletter Form "'.$formname.'" Deleted Successfully.'; } } /* * Saving New form */ $newsletter_forms=get_option('awp_newsletterforms'); if(isset($_POST['newnewsletterformname'])) { $newsletter_forms=get_option('awp_newsletterforms'); $newnewsletterformname = $_POST['newnewsletterformname']; $newnewsletterformname = preg_replace('/[^\w]/', '', $newnewsletterformname); if($newnewsletterformname!='') { $newsletterform=array(); $newsletterform=$this->awp_getnewsletterletter_settings($newnewsletterformname); if( count($newsletterform)==0 ) { $newnewsletterformname_array =array("name"=>$newnewsletterformname); $newnewsletterform=array($newnewsletterformname_array); if( empty($newsletter_forms) ){ update_option('awp_newsletterforms',$newnewsletterform); }else{ array_push($newsletter_forms, $newnewsletterformname_array); update_option('awp_newsletterforms',$newsletter_forms); } $newsletter_forms=get_option('awp_newsletterforms'); $newsletterform=$this->awp_getnewsletterletter_settings($newnewsletterformname); $selectednewsletterform=$newnewsletterformname; $updatemessage= "Newsletter Form created. Please configure settings using the below Configuration section."; }else{ $updatemessage= "Form already exists. To change configuration, please select the form from below configuration section."; } }else{ $updatemessage= "Form Name cannot be empty."; } } /* * Loading the settings of selected form */ if(isset($_POST['awp_newsletter_selection_form'])) { $selectednewsletterform = trim( $_POST['awp_newsletter_selection_form']); if($selectednewsletterform != '') { $newsletterforms_name=array(); $newsletterforms_name=$this->awp_getnewsletterletter_settings($selectednewsletterform); if( empty($newsletterforms_name)) { //echo "Selected form configuration doestn exist."; }else{ $newsletterforms_name=$newsletterforms_name; } } } if($_POST['awp_newsletterform_settings']){ $templatelayoutnewsletter=""; if($_POST['awp_newsletterform_templatetype']=="awp_plugin_template") $templatelayoutnewsletter=$_POST['awp_newsletterform_plugintemplatelayout']; else $templatelayoutnewsletter=$_POST['awp_newsletterform_themetemplatelayout']; $newformname=$_POST['awp_newsletterform_name']; $newsletterformproperties=array( 'tmpltype' =>$_POST['awp_newsletterform_templatetype'], 'layout' =>$templatelayoutnewsletter, 'subscribetype' =>$_POST['awp_newsletterform_subscribetype'], 'confmsg' =>stripslashes($_POST['awp_newsletterform_confirmation_msg']), 'css' => $_POST['awp_newsletterform_customcss'], 'category' => $_POST['awp_newsletterform_category'], 'submit_button_type' => $_POST['awp_newsletterform_submit_type'], 'submit_button_val' => $_POST['awp_newsletterform_submit_value']); $newsletterformfields=array(); foreach( $this->get_master_newsletterform_fields() as $fieldsmasterproperties ) { $enabled=0; $newsletterformfield=array(); $fieldid=$fieldsmasterproperties['fieldid']; $fieldtype= $fieldsmasterproperties['fieldtype']; if($fieldsmasterproperties['fieldid']=='newsletter_email'){ $enabled = 1; $required = 1; $validate = 'email'; } else{ $enabled = $_POST[$fieldid.'_show']; $required = $_POST[$fieldid.'_require']; $validate = $_POST[$fieldid.'_validation']; } if(!empty($_POST[$fieldid.'_text'])){ $displaytext = $_POST[$fieldid.'_text']; } else{ $displaytext = $fieldsmasterproperties['defaulttext']; } if(!empty($_POST[$fieldid.'_order'])){ $displayorder = $_POST[$fieldid.'_order']; } else{ $displayorder = $fieldsmasterproperties['showorder']; } if($enabled){ $newsletterformfield=$this->createformfield_array($fieldid,$displaytext,$required,$fieldtype,$validate,$_POST[$fieldid.'_options'],$displayorder); array_push($newsletterformfields, $newsletterformfield); } } $newnewsletterformdetails=array('name'=>$newformname,'properties'=>$newsletterformproperties,'fields'=>$newsletterformfields); $formExists=""; if(!empty($newsletter_forms)) $formExists = awp_recursive_array_search($newsletter_forms,$newformname,'name' ); if(trim($formExists)!=="" ){ unset($newsletter_forms[$formExists]); array_push($newsletter_forms, $newnewsletterformdetails); sort($newsletter_forms); update_option('awp_newsletterforms',$newsletter_forms); $newsletter_forms=get_option('awp_newsletterforms'); $updatemessage= "Newsletter Form '".$newformname."' settings updated. Use Shortcode '[apptivonewsletterform name=\"".$newformname."\"]' in your page to use this form."; } $selectednewsletterform=$newformname; } echo "

" . __( 'Apptivo Newsletter Forms', 'awp_newsletterform' ) . "

"; echo '
'; if(trim($updatemessage)!=""){ ?>

_plugin_activated){ $disabledForm = 'disabled="disabled"'; echo "Newsletter Forms is currently disabled. Please enable this in Apptivo General Settings."; } ?>

Newsletter

For Complete instructions,see the Developer's Guide.

*  

type="submit" name="Submit" class="button-primary" value="" />


getNewsletterCategory(); if(empty($newsletter_categories[0])){ echo "Please add target list in apptivo before configuring newsletter"; } else{ ?>
awp_getnewsletterletter_settings($selectednewsletterform); if(count($newsletterformdetails)>0){ $selectednewsletterform=$newsletterformdetails[name]; $newsletter_fields=$newsletterformdetails[fields]; $newsletter_formproperties=$newsletterformdetails[properties]; } ?> " . __( 'Apptivo Newsletter Form Configuration', 'awp_newsletterform' ) . ""; ?> Save the below settings to get the Shortcode for Newsletter form.'; endif; ?>
_plugin_activated) {?>
Delete


Copy and Paste this shortcode in your page to display this contact form.
*Developers Guide - Newsletter Form Shortcodes.
*Developers Guide - Newsletter Form Templates.


*Developers Guide - Newsletter Form CSS.

checked="checked"/> Button /> Image


Select which category you want to add your newsletter.

" . __( 'Newsletter Form Fields', 'awp_newsletterform' ) . "";?>
*Developers Guide - Basic Newsletter Form Config.

get_master_newsletterform_fields() as $fieldsmasterproperties ) { $enabled = 0; $required = 0; $fieldExists=array(); $fieldid=$fieldsmasterproperties['fieldid']; $validation=$fieldsmasterproperties['validation']; $fieldExistFlag=""; if(!empty($newsletter_fields)) { $fieldExistFlag= awp_recursive_array_search($newsletter_fields, $fieldid, 'fieldid'); } if(trim($fieldExistFlag)!=="") { $enabled=1; $fieldData=array("fieldid"=>$fieldid, "validation"=>$validation, "fieldname"=>$fieldsmasterproperties['fieldname'], "show"=>$enabled, "required"=>$newsletter_fields[$fieldExistFlag]['required'], "showtext"=>$newsletter_fields[$fieldExistFlag]['showtext'], "order"=>$newsletter_fields[$fieldExistFlag]['order']); }else{ if($fieldid=="newsletter_email") { $enabled = 1; $required = 1; } $fieldData=array("fieldid"=>$fieldid, "validation"=>$validation, "fieldname"=>$fieldsmasterproperties['fieldname'], "show"=>$enabled, "required"=> $required, "showtext"=>"", "order"=>""); } ?>
checked="checked" disabled="disabled" type="checkbox" id="_show" name="_show" size="30" onclick="enablefield('')" > disabled="disabled" checked="checked" type="checkbox" disabled="disabled" id="_require" name="_require" size="30"> disabled="disabled" > disabled="disabled" type="text" id="_text" name="_text" value="">

type="submit" name="awp_newsletterform_settings" id="awp_newsletterform_settings" class="button-primary" value="" />

'subscribe'); return $templates; } /** * getNewsletterCategory * * @return unknown */ function getNewsletterCategory(){ $category = getAllTargetListcategory(); return awp_convertObjToArray($category->return->targetList); } function createformfield_array($fieldid,$showtext,$required,$type,$validation,$options,$displayorder){ if(trim($displayorder)=="") $displayorder=0; $contactformfield= array( 'fieldid'=>$fieldid, 'showtext' => $showtext, 'required' => $required, 'type' => $type, 'validation' => $validation, 'options' => $options, 'order' => $displayorder ); return $contactformfield; } function register_widget(){ //register new widget in Available widgets register_widget( 'AWP_Newsletter_Widget' ); } function check_for_shortcode($posts) { $found=awp_check_for_shortcode($posts,'[apptivonewsletterform'); if ($found){ // load styles and scripts $this->loadscripts(); } return $posts; } function loadscripts() { wp_register_script('jquery_validation',AWP_PLUGIN_BASEURL. '/assets/js/validator-min.js',array('jquery')); wp_print_scripts('jquery_validation'); } } /** * Get All Targetlists from Apptivo. * * @return unknown */ function getAllTargetListcategory() { $params = array ( "arg0" => APPTIVO_SITE_KEY, "arg1" => APPTIVO_ACCESS_KEY ); $response = getsoapCall(APPTIVO_BUSINESS_SERVICES,'fetchAllTargetLists',$params); return $response; } /** * Create TargetLists. * * @param unknown_type $category * @param unknown_type $fname * @param unknown_type $lname * @param unknown_type $email * @param unknown_type $userId * @return unknown */ function createTargetList($category,$fname,$lname,$email,$phoneNumber,$comments,$userId=null) { $target_category = target_lists_category(trim($category)); if(trim($category) != $target_category ) { return $target_category; } $verification = check_blockip(); if($verification){ return $verification; } $appParam = new AWP_appParam('PHONE',$phoneNumber); $params = array ( "arg0" => APPTIVO_SITE_KEY, "arg1" => APPTIVO_ACCESS_KEY, "arg2" => $category, "arg3" => $fname, "arg4" => $lname, "arg5" => $email, "arg6" => $comments, "arg7" => $userId, "arg8" => $appParam ); $response = getsoapCall(APPTIVO_BUSINESS_SERVICES,'addTargetWithCommunicationDetailsAndAddToTargetList',$params); return $response; } function target_lists_category($category) { $target = new AWP_Newsletter(); $targetcategory = $target->getNewsletterCategory(); foreach($targetcategory as $targetLists): if($targetLists->targetListName == $category) { return $category; } endforeach; if($targetcategory == '' || $targetcategory[0] == '') : return 'E_N001'; //target Lists not available else: return 'E_N002'; // Need to configuration newsletter once. endif; } ?>