wpcf7_load_contact_form_admin() │ CF7 1.0
Хуки из функции
Возвращает
null. Ничего (null).
Использование
wpcf7_load_contact_form_admin();
Код wpcf7_load_contact_form_admin() wpcf7 load contact form admin CF7 6.1.6
function wpcf7_load_contact_form_admin() {
global $plugin_page;
$action = wpcf7_current_action();
do_action( 'wpcf7_admin_load',
wpcf7_superglobal_get( 'page' ),
$action
);
if ( 'save' === $action ) {
$id = wpcf7_superglobal_post( 'post_ID', '-1' );
check_admin_referer( 'wpcf7-save-contact-form_' . $id );
if ( ! current_user_can( 'wpcf7_edit_contact_form', $id ) ) {
wp_die(
esc_html( __( 'You are not allowed to edit this item.', 'contact-form-7' ) )
);
}
$contact_form = wpcf7_save_contact_form(
array_merge(
wp_unslash( $_REQUEST ),
array(
'id' => $id,
'title' => wpcf7_superglobal_post( 'post_title', null ),
'locale' => wpcf7_superglobal_post( 'wpcf7-locale', null ),
'form' => wpcf7_superglobal_post( 'wpcf7-form', '' ),
'mail' => wpcf7_superglobal_post( 'wpcf7-mail', array() ),
'mail_2' => wpcf7_superglobal_post( 'wpcf7-mail-2', array() ),
'messages' => wpcf7_superglobal_post( 'wpcf7-messages', array() ),
'additional_settings' => wpcf7_superglobal_post( 'wpcf7-additional-settings', '' ),
)
)
);
if ( $contact_form and wpcf7_validate_configuration() ) {
$config_validator = new WPCF7_ConfigValidator( $contact_form );
$config_validator->validate();
$config_validator->save();
}
$query = array(
'post' => $contact_form ? $contact_form->id() : 0,
'active-tab' => wpcf7_canonicalize_name(
wpcf7_superglobal_post( 'active-tab' )
),
);
if ( ! $contact_form ) {
$query['message'] = 'failed';
} elseif ( -1 === (int) $id ) {
$query['message'] = 'created';
} else {
$query['message'] = 'saved';
}
$redirect_to = add_query_arg( $query, menu_page_url( 'wpcf7', false ) );
wp_safe_redirect( $redirect_to );
exit();
}
if ( 'copy' === $action ) {
$id = absint( $_POST['post_ID'] ?? $_REQUEST['post'] ?? '' );
check_admin_referer( 'wpcf7-copy-contact-form_' . $id );
if ( ! current_user_can( 'wpcf7_edit_contact_form', $id ) ) {
wp_die(
esc_html( __( '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 ) {
$nonce_action = 'bulk-posts';
if (
$post_id = wpcf7_superglobal_post( 'post_ID' ) or
! is_array( $post_id = wpcf7_superglobal_request( 'post', array() ) )
) {
$nonce_action = sprintf( 'wpcf7-delete-contact-form_%s', $post_id );
}
check_admin_referer( $nonce_action );
$posts = array_filter( (array) $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(
esc_html( __( 'You are not allowed to delete this item.', 'contact-form-7' ) )
);
}
if ( ! $post->delete() ) {
wp_die(
esc_html( __( '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();
}
$post = null;
if ( 'wpcf7-new' === $plugin_page ) {
$post = WPCF7_ContactForm::get_template( array(
'locale' => wpcf7_superglobal_get( 'locale', null ),
) );
} elseif ( $post_id = wpcf7_superglobal_get( 'post' ) ) {
$post = WPCF7_ContactForm::get_instance( $post_id );
}
$current_screen = get_current_screen();
$help_tabs = new WPCF7_Help_Tabs( $current_screen );
if ( $post and 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' ),
10, 0
);
add_screen_option( 'per_page', array(
'default' => 20,
'option' => 'wpcf7_contact_forms_per_page',
) );
}
}