protected function processForms() { if (!isset($_REQUEST['cc-form-id']) && empty($_REQUEST['form'])) { return; } if (defined('DOING_AJAX') && DOING_AJAX) { return; } global $cc_form_selected_id; // Allowed actions: add, update, delete $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'edit'; $cc_form_selected_id = cc_form_get_selected_id(); if ($action === 'edit') { return; } $messages = array(); switch ($action) { case 'delete_all': if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'delete-all')) { wp_die('You are not authorized to delete these forms. The request may have expired; please go back and refresh the page, then try again.'); } delete_option('cc_form_design'); break; case 'delete': $cc_form_selected_id = isset($_REQUEST['form']) ? (int) $_REQUEST['form'] : $cc_form_selected_id; if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'delete-cc_form-' . $cc_form_selected_id)) { wp_die('You are not authorized to delete the form. The request may have expired; please go back and refresh the page, then try again.'); } if ($deleted_form = wp_get_cc_form($cc_form_selected_id)) { $delete_cc_form = wp_delete_cc_form($cc_form_selected_id); if (is_wp_error($delete_cc_form)) { $messages[] = '<div class="error below-h2"><p>' . $delete_cc_form->get_error_message() . '</p></div>'; } else { $messages[] = '<div class="updated below-h2"><p>' . sprintf(__('The form %s has been successfully deleted.', 'ctct'), $deleted_form['form-name']) . '</p></div>'; // Select the next available menu $cc_form_selected_id = -1; $_cc_forms = wp_get_cc_forms(array('orderby' => 'name')); foreach ($_cc_forms as $index => $_cc_form) { if ($index == count($_cc_forms) - 1) { $cc_form_selected_id = $_cc_form['cc-form-id']; break; } } } $_REQUEST['deleted'] = 1; } else { $_REQUEST['deleted'] = 0; // Reset the selected menu $cc_form_selected_id = -1; unset($_REQUEST['form']); $messages[] = '<div class="error below-h2"><p>' . __('The form could not be deleted. The form may have already been deleted.', 'ctct') . '</p></div>'; } break; case 'update': if (!current_user_can('edit_posts')) { return; } if (!wp_verify_nonce($_REQUEST['update-cc-form-nonce'], 'update-cc-form-' . (int) $cc_form_selected_id)) { wp_die('You are not authorized to modify the form. The request may have expired; please go back and refresh the page, then try again.'); } // Add Form if (-1 == $cc_form_selected_id) { $new_form_title = trim(esc_html($_REQUEST['form-name'])); if ($new_form_title == 'Enter form name here') { $new_form_title = ''; } $cc_form_selected_id = wp_create_cc_form(); if (is_wp_error($cc_form_selected_id)) { $messages[] = '<div class="error below-h2"><p>' . $cc_form_selected_id->get_error_message() . '</p></div>'; } else { $messages[] = '<div class="updated below-h2"><p>' . sprintf(__('The form %s has been successfully created.', 'ctct'), '<strong>' . $new_form_title . '</strong>') . '</p></div>'; } // update existing form } else { if (wp_get_cc_form($cc_form_selected_id)) { $request = wp_update_cc_form_object($cc_form_selected_id, $_REQUEST); if (!is_wp_error($request)) { $messages[] = '<div class="below-h2 updated fade"><p>' . sprintf(__('The <strong>%s</strong> form has been updated.', 'ctct'), $request['form-name']) . '</p></div>'; } else { $messages[] = '<div class="error below-h2"><p>' . $cc_form_selected_id->get_error_message() . '</p></div>'; } } else { } } break; } $this->messages = $messages; }
esc_attr_e('Select', 'ctct'); ?> "></span> <?php $add_form_url = esc_url(add_query_arg(array('action' => 'edit', 'form' => -1), admin_url('admin.php?page=constant-contact-forms'))); $new_form_link = sprintf(esc_html_x('or %screate a new form%s.', 'The strings are HTML link tags for a link to create a new form.', 'ctct'), '<a href="' . $add_form_url . '">', '</a>'); echo '<span class="add-new-menu-action"> ' . $new_form_link . ' </span>'; ?> </form> </div> <?php $form = wp_get_cc_form($cc_form_selected_id); ?> <form id="cc-form-settings" action="<?php echo admin_url('admin.php?page=constant-contact-forms' . $formURL); ?> " method="post" enctype="multipart/form-data" class="hide-if-no-js"> <div id="nav-menus-frame"> <div id="menu-settings-column" class="metabox-holder"> <div id="settings"> <div id="side-sortables" class="meta-box-sortables ui-sortable"> <?php do_meta_boxes('constant-contact-form', 'core', null); ?> <?php