__('Add a newsletter subscription form.') ) ); } /** * Save the new widget's title. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['form'] = (int)$new_instance['form']; return $instance; } /** * Output the widget's option form. */ public function form($instance) { $instance = wp_parse_args( (array)$instance, array( 'title' => __("Subscribe to our Newsletter") ) ); $form_edit_url = admin_url('admin.php?page=mailpoet-form-editor&id='); // set title $title = isset($instance['title']) ? strip_tags($instance['title']) : ''; // set form $selected_form = isset($instance['form']) ? (int)($instance['form']) : 0; // get forms list $forms = Form::getPublished()->orderByAsc('name')->findArray(); ?>

id_base ); // get form $form = Form::getPublished()->findOne($instance['form']); // if the form was not found, return nothing. if($form === false) { return ''; } else { $form = $form->asArray(); $form_type = 'widget'; if(isset($instance['form_type']) && in_array( $instance['form_type'], array('html', 'php', 'iframe', 'shortcode') )) { $form_type = $instance['form_type']; } $settings = (isset($form['settings']) ? $form['settings'] : array()); $body = (isset($form['body']) ? $form['body'] : array()); $output = ''; if(!empty($body)) { $form_id = $this->id_base.'_'.$form['id']; $data = array( 'form_id' => $form_id, 'form_type' => $form_type, 'form' => $form, 'title' => $title, 'styles' => FormRenderer::renderStyles($form, '#'.$form_id), 'html' => FormRenderer::renderHTML($form), 'before_widget' => (!empty($before_widget) ? $before_widget : ''), 'after_widget' => (!empty($after_widget) ? $after_widget : ''), 'before_title' => (!empty($before_title) ? $before_title : ''), 'after_title' => (!empty($after_title) ? $after_title : '') ); // check if the form was successfully submitted via POST (non ajax) $data['success'] = ( (isset($_GET['mailpoet_success'])) && ((int)$_GET['mailpoet_success'] === (int)$form['id']) ); // generate security token $data['token'] = Security::generateToken(); // render form $renderer = new Renderer(); $renderer = $renderer->init(); $output = $renderer->render('form/widget.html', $data); $output = do_shortcode($output); } if($form_type === 'widget') { echo $output; } else { return $output; } } } }