service_exists() ) { $integration = add_submenu_page( 'wpcf7', __( 'Integration with Other Services', 'contact-form-7' ), __( 'Integration', 'contact-form-7' ), 'wpcf7_manage_integration', 'wpcf7-integration', 'wpcf7_admin_integration_page' ); add_action( 'load-' . $integration, 'wpcf7_load_integration_page' ); } } add_filter( 'set-screen-option', 'wpcf7_set_screen_options', 10, 3 ); function wpcf7_set_screen_options( $result, $option, $value ) { $wpcf7_screens = array( 'cfseven_contact_forms_per_page' ); if ( in_array( $option, $wpcf7_screens ) ) $result = $value; return $result; } function wpcf7_load_contact_form_admin() { global $plugin_page; $action = wpcf7_current_action(); if ( 'save' == $action ) { $id = $_POST['post_ID']; check_admin_referer( 'wpcf7-save-contact-form_' . $id ); if ( ! current_user_can( 'wpcf7_edit_contact_form', $id ) ) wp_die( __( 'You are not allowed to edit this item.', 'contact-form-7' ) ); $id = wpcf7_save_contact_form( $id ); $query = array( 'message' => ( -1 == $_POST['post_ID'] ) ? 'created' : 'saved', 'post' => $id, 'active-tab' => isset( $_POST['active-tab'] ) ? (int) $_POST['active-tab'] : 0 ); $redirect_to = add_query_arg( $query, menu_page_url( 'wpcf7', false ) ); wp_safe_redirect( $redirect_to ); exit(); } if ( 'copy' == $action ) { $id = empty( $_POST['post_ID'] ) ? absint( $_REQUEST['post'] ) : absint( $_POST['post_ID'] ); check_admin_referer( 'wpcf7-copy-contact-form_' . $id ); if ( ! current_user_can( 'wpcf7_edit_contact_form', $id ) ) wp_die( __( 'You are not allowed to edit this item.', 'contact-form-7' ) ); $query = array(); if ( $contact_form = wpcf7_contact_form( $id ) ) { $new_contact_form = $contact_form->copy(); $new_contact_form->save(); $query['post'] = $new_contact_form->id(); $query['message'] = 'created'; } $redirect_to = add_query_arg( $query, menu_page_url( 'wpcf7', false ) ); wp_safe_redirect( $redirect_to ); exit(); } if ( 'delete' == $action ) { if ( ! empty( $_POST['post_ID'] ) ) check_admin_referer( 'wpcf7-delete-contact-form_' . $_POST['post_ID'] ); elseif ( ! is_array( $_REQUEST['post'] ) ) check_admin_referer( 'wpcf7-delete-contact-form_' . $_REQUEST['post'] ); else check_admin_referer( 'bulk-posts' ); $posts = empty( $_POST['post_ID'] ) ? (array) $_REQUEST['post'] : (array) $_POST['post_ID']; $deleted = 0; foreach ( $posts as $post ) { $post = WPCF7_ContactForm::get_instance( $post ); if ( empty( $post ) ) continue; if ( ! current_user_can( 'wpcf7_delete_contact_form', $post->id() ) ) wp_die( __( 'You are not allowed to delete this item.', 'contact-form-7' ) ); if ( ! $post->delete() ) wp_die( __( 'Error in deleting.', 'contact-form-7' ) ); $deleted += 1; } $query = array(); if ( ! empty( $deleted ) ) $query['message'] = 'deleted'; $redirect_to = add_query_arg( $query, menu_page_url( 'wpcf7', false ) ); wp_safe_redirect( $redirect_to ); exit(); } if ( 'validate' == $action && wpcf7_validate_configuration() ) { if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) { check_admin_referer( 'wpcf7-bulk-validate' ); if ( ! current_user_can( 'wpcf7_edit_contact_forms' ) ) { wp_die( __( "You are not allowed to validate configuration.", 'contact-form-7' ) ); } $contact_forms = WPCF7_ContactForm::find(); $result = array( 'timestamp' => current_time( 'timestamp' ), 'version' => WPCF7_VERSION, 'count_valid' => 0, 'count_invalid' => 0 ); foreach ( $contact_forms as $contact_form ) { $config_validator = new WPCF7_ConfigValidator( $contact_form ); $config_validator->validate(); if ( $config_validator->is_valid() ) { $result['count_valid'] += 1; } else { $result['count_invalid'] += 1; } } WPCF7::update_option( 'bulk_validate', $result ); $query = array( 'message' => 'validated' ); $redirect_to = add_query_arg( $query, menu_page_url( 'wpcf7', false ) ); wp_safe_redirect( $redirect_to ); exit(); } } $_GET['post'] = isset( $_GET['post'] ) ? $_GET['post'] : ''; $post = null; if ( 'wpcf7-new' == $plugin_page ) { $post = WPCF7_ContactForm::get_template( array( 'locale' => isset( $_GET['locale'] ) ? $_GET['locale'] : null ) ); } elseif ( ! empty( $_GET['post'] ) ) { $post = WPCF7_ContactForm::get_instance( $_GET['post'] ); } $current_screen = get_current_screen(); $help_tabs = new WPCF7_Help_Tabs( $current_screen ); if ( $post && current_user_can( 'wpcf7_edit_contact_form', $post->id() ) ) { $help_tabs->set_help_tabs( 'edit' ); } else { $help_tabs->set_help_tabs( 'list' ); if ( ! class_exists( 'WPCF7_Contact_Form_List_Table' ) ) { require_once WPCF7_PLUGIN_DIR . '/admin/includes/class-contact-forms-list-table.php'; } add_filter( 'manage_' . $current_screen->id . '_columns', array( 'WPCF7_Contact_Form_List_Table', 'define_columns' ) ); add_screen_option( 'per_page', array( 'default' => 20, 'option' => 'cfseven_contact_forms_per_page' ) ); } } add_action( 'admin_enqueue_scripts', 'wpcf7_admin_enqueue_scripts' ); function wpcf7_admin_enqueue_scripts( $hook_suffix ) { if ( false === strpos( $hook_suffix, 'wpcf7' ) ) { return; } wp_enqueue_style( 'contact-form-7-admin', wpcf7_plugin_url( 'admin/css/styles.css' ), array(), WPCF7_VERSION, 'all' ); if ( wpcf7_is_rtl() ) { wp_enqueue_style( 'contact-form-7-admin-rtl', wpcf7_plugin_url( 'admin/css/styles-rtl.css' ), array(), WPCF7_VERSION, 'all' ); } wp_enqueue_script( 'wpcf7-admin', wpcf7_plugin_url( 'admin/js/scripts.js' ), array( 'jquery', 'jquery-ui-tabs' ), WPCF7_VERSION, true ); $args = array( 'pluginUrl' => wpcf7_plugin_url(), 'saveAlert' => __( "The changes you made will be lost if you navigate away from this page.", 'contact-form-7' ), 'activeTab' => isset( $_GET['active-tab'] ) ? (int) $_GET['active-tab'] : 0, 'howToCorrectLink' => __( "How to correct this?", 'contact-form-7' ), 'configErrors' => array() ); if ( ( $post = wpcf7_get_current_contact_form() ) && current_user_can( 'wpcf7_edit_contact_form', $post->id() ) && wpcf7_validate_configuration() ) { $config_validator = new WPCF7_ConfigValidator( $post ); $error_messages = $config_validator->collect_error_messages(); foreach ( $error_messages as $section => $errors ) { $args['configErrors'][$section] = array(); foreach ( $errors as $error ) { $args['configErrors'][$section][] = array( 'message' => esc_html( $error['message'] ), 'link' => esc_url( $error['link'] ) ); } } } wp_localize_script( 'wpcf7-admin', '_wpcf7', $args ); add_thickbox(); wp_enqueue_script( 'wpcf7-admin-taggenerator', wpcf7_plugin_url( 'admin/js/tag-generator.js' ), array( 'jquery', 'thickbox', 'wpcf7-admin' ), WPCF7_VERSION, true ); } function wpcf7_admin_management_page() { if ( $post = wpcf7_get_current_contact_form() ) { $post_id = $post->initial() ? -1 : $post->id(); require_once WPCF7_PLUGIN_DIR . '/admin/includes/editor.php'; require_once WPCF7_PLUGIN_DIR . '/admin/edit-contact-form.php'; return; } if ( 'validate' == wpcf7_current_action() && wpcf7_validate_configuration() && current_user_can( 'wpcf7_edit_contact_forms' ) ) { wpcf7_admin_bulk_validate_page(); return; } $list_table = new WPCF7_Contact_Form_List_Table(); $list_table->prepare_items(); ?>
%s
', esc_html( $updated_message ) ); return; } if ( 'validated' == $_REQUEST['message'] ) { $bulk_validate = WPCF7::get_option( 'bulk_validate', array() ); $count_invalid = isset( $bulk_validate['count_invalid'] ) ? absint( $bulk_validate['count_invalid'] ) : 0; if ( $count_invalid ) { $updated_message = sprintf( _n( "Configuration validation completed. An invalid contact form was found.", "Configuration validation completed. %s invalid contact forms were found.", $count_invalid, 'contact-form-7' ), number_format_i18n( $count_invalid ) ); echo sprintf( '%s
%s
Contact Form 7 %1$s requires WordPress %2$s or higher. Please update WordPress first.', 'contact-form-7' ), WPCF7_VERSION, WPCF7_REQUIRED_WP_VERSION, admin_url( 'update-core.php' ) ); ?>
%s
%s » %s