0, 'sender' => '', 'subject' => '', 'body' => '', 'recipient' => '', 'page' => -1, 'conditions' => 'disabled', 'template' => '', 'category' => 0, )); } /** * Add the styles for the form */ public function addStyles($hook) { wp_enqueue_script('f12-cf7-doubleoptin-admin', plugins_url('assets/f12-cf7-popup.js', __FILE__), array('jquery')); wp_localize_script('f12-cf7-doubleoptin-admin', 'doi', array( 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('f12_doi_details') )); wp_enqueue_script('f12-cf7-doubleoptin-templateloader', plugins_url('assets/f12-cf7-templateloader.js', __FILE__), array('jquery')); wp_localize_script('f12-cf7-doubleoptin-templateloader', 'templateloader', array( 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('f12_doi_templateloader'), 'label_placeholder' => __('Please wait while we load the template...', 'double-opt-in') )); } /** * Add the hooks responsible to handle wordpress functions */ public function addHooks() { add_filter('wpcf7_editor_panels', array($this, 'addPanel'), 10, 1); add_action('wpcf7_save_contact_form', array($this, 'save'), 10, 3); } /** * Add a custom panel to the contact form 7 options */ public function addPanel(array $panels) { $panels['optin'] = array( 'title' => __('Double-Opt-in', 'f12-cf7-doubleoptin'), 'callback' => array($this, 'render') ); return $panels; } /** * On Contact Form save store the information in the database * * @param \WPCF7_ContactForm $contact_form * @param $args * @param $context */ public function save($contact_form, $args, $context) { $postID = $contact_form->id(); // Validate nonce if (!isset($_POST['f12_cf7_doubleoptin_save_form_nonce']) || !wp_verify_nonce($_POST['f12_cf7_doubleoptin_save_form_nonce'], 'f12_cf7_doubleoptin_save_form_action')) { return; } // Check if the double opt in settings is set if (!$postID || !isset($_POST['doubleoptin'])) { update_post_meta($postID, 'f12-cf7-doubleoptin', array()); return; } $parameter = CF7DoubleOptIn::getInstance()->sanitize_array($_POST['doubleoptin']); // load the default parameter $metadata = CF7DoubleOptIn::getInstance()->getParameter($postID); // validated all parameter defined in the default parameter options and sanitize them. foreach ($metadata as $key => $value) { if (isset($parameter[$key])) { if ($key == 'body') { $metadata[$key] = $parameter[$key]; } else if($key == 'enable'){ $metadata[$key] = (int)$parameter[$key]; }else if ($key == 'sender') { $metadata[$key] = $parameter[$key]; } else { $metadata[$key] = $parameter[$key]; } } else if ($key == 'enable') { $metadata[$key] = 0; } } $metadata = apply_filters('f12_cf7_doubleoptin_save_form', $metadata); update_post_meta($postID, 'f12-cf7-doubleoptin', $metadata); } /** * Return an option list containing all tags for the condition and a default field to disable the condition. * * @param \WPCF7_ContactForm $post * * @return array */ private function getTags($post) { $tags = array(); $arrayTags = $post->scan_form_tags(); foreach ($arrayTags as $formTag/** @var \WPCF7_FormTag $formTag */) { if (!empty($formTag->name)) { $tags[$formTag->name] = $formTag->name; } } return $tags; } /** * Show the backend double opt in options * * @param \WPCF7_ContactForm $post */ public function render($post) { if (!$post) { return; } $metadata = CF7DoubleOptIn::getInstance()->getParameter($post->id()); $id = "doubleoptin"; ?>

>

-1, 'orderBy' => 'name', 'order' => 'ASC' ); $list = Category::get_list($atts, $numberOfPages); $response = ''; foreach ($list as $Category/** @var Category $Category */) { $selected = ""; if ($Category->get_id() == $metadata['category']) { $selected = 'selected="selected"'; } $response .= ''; } ?>
__('Disabled', 'double-opt-in')), $this->getTags($post)), array('id' => array($id . '-conditions'), 'class' => array('large-text', 'code'))); $ConditionList->setOptionSelectedByKey($metadata['conditions']); echo wp_kses($ConditionList->get(), array('select' => array('name' => array()), 'option' => array('value' => array(), 'selected' => array()))); ?>
__('default', 'double-opt-in'), 'name' => 'doubleoptin[page]', 'selected' => $metadata['page'] )); ?>

getTags($post); foreach ($arrayTags as $key => $value) { $arrayTags[$key] = "[" . esc_html($value) . "]"; } echo esc_html(implode(",", array_filter($arrayTags))); ?>

'blank', 'newsletter_en' => 'newsletter_en', 'newsletter_en_2' => 'newsletter_en_2', 'newsletter_en_3' => 'newsletter_en_3' ), array( 'class' => array('f12-cf7-templateloader'), 'style' => array('display:none;') )); $TemplateList->setOptionSelectedByKey($metadata['template']); echo wp_kses($TemplateList->get(), array('select' => array('style' => array(), 'class' => array(), 'name' => array()), 'option' => array('value' => array(), 'selected' => array()))); ?>

<a href="[doubleoptinlink]">Confirm the registration</a>

[doubleoptinlink],[doubleoptin_form_url],[doubleoptin_form_subject],[doubleoptin_form_date],[doubleoptin_form_time],[_site_admin_email],getTags($post); foreach ($arrayTags as $key => $value) { $arrayTags[$key] = "[" . esc_html($value) . "]"; } echo implode(",", array_filter($arrayTags)); ?>