Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
home
/
ophq1335
/
www
/
wp-content
/
plugins
/
wp-seopress
/
inc
/
admin
/
metaboxes
/
/home/ophq1335/www/wp-content/plugins/wp-seopress/inc/admin/metaboxes/admin-metaboxes.php
<?php /** * Metaboxes * * @package Metaboxes */ defined( 'ABSPATH' ) || exit( 'Please don’t call the plugin directly. Thanks :)' ); /** * Display metabox in Custom Post Type */ function seopress_display_date_snippet() { if ( seopress_get_service( 'TitleOption' )->getSingleCptDate() === '1' ) { return '<div class="snippet-date">' . get_the_modified_date( 'M j, Y' ) . ' - </div>'; } } /** * Primary category select * * @param bool $echo Echo the HTML. * @param bool $with_description Display the description. * * @return string HTML. */ function seopress_primary_category_select( $echo = true, $with_description = true ) { global $post; global $typenow; $seopress_robots_primary_cat = get_post_meta( $post->ID, '_seopress_robots_primary_cat', true ); $cats = 'product' == $typenow && seopress_get_service( 'WooCommerceActivate' )->isActive() ? get_the_terms( $post, 'product_cat' ) : get_categories(); $cats = apply_filters( 'seopress_primary_category_list', $cats ); $options = ''; if ( ! empty( $cats ) ) { $options .= sprintf( '<option value="none" %s>%s</option>', selected( 'none', $seopress_robots_primary_cat, false ), __( 'None (will disable this feature)', 'wp-seopress' ) ); foreach ( $cats as $category ) { $options .= sprintf( '<option value="%s" %s>%s</option>', (int) $category->term_id, selected( $category->term_id, $seopress_robots_primary_cat, false ), esc_html( $category->name ) ); } } $html = ''; $description = sprintf( /* translators: category permalink structure */ __( 'Set the category that gets used in the %s permalink and in our breadcrumbs if you have multiple categories.', 'wp-seopress' ), '<code>%category%</code>' ); if ( ! empty( $options ) ) { $html = sprintf( '<p> <label for="seopress_robots_primary_cat" style="display:block; margin-bottom:8px;">%s</label> %s <br><select id="seopress_robots_primary_cat" name="seopress_robots_primary_cat">%s</select> </p>', __( 'Select a primary category', 'wp-seopress' ), $with_description ? sprintf( '<span class="description">%s</span>', $description ) : '', $options ); } if ( $echo ) { echo $html; } return $html; } /** * Metaboxes init * * @return array Data attributes. */ function seopress_metaboxes_init() { global $typenow; global $pagenow; $data_attr = array(); $data_attr['data_tax'] = ''; $data_attr['termId'] = ''; if ( 'post-new.php' === $pagenow || 'post.php' === $pagenow ) { $data_attr['current_id'] = get_the_id(); $data_attr['origin'] = 'post'; $data_attr['title'] = get_the_title( $data_attr['current_id'] ); } elseif ( 'term.php' === $pagenow || 'edit-tags.php' === $pagenow ) { global $tag; $data_attr['current_id'] = $tag->term_id; $data_attr['termId'] = $tag->term_id; $data_attr['origin'] = 'term'; $data_attr['data_tax'] = $tag->taxonomy; $data_attr['title'] = $tag->name; } $data_attr['isHomeId'] = get_option( 'page_on_front' ); if ( '0' === $data_attr['isHomeId'] ) { $data_attr['isHomeId'] = ''; } return $data_attr; } /** * Display SEO metaboxe */ function seopress_display_seo_metaboxe() { add_action( 'add_meta_boxes', 'seopress_init_metabox' ); /** * Init metaboxe */ function seopress_init_metabox() { if ( seopress_get_service( 'AdvancedOption' )->getAppearanceMetaboxePosition() !== null ) { $metaboxe_position = seopress_get_service( 'AdvancedOption' )->getAppearanceMetaboxePosition(); } else { $metaboxe_position = 'default'; } $seopress_get_post_types = seopress_get_service( 'WordPressData' )->getPostTypes(); $seopress_get_post_types = apply_filters( 'seopress_metaboxe_seo', $seopress_get_post_types ); if ( ! empty( $seopress_get_post_types ) && ! seopress_get_service( 'EnqueueModuleMetabox' )->canEnqueue() ) { foreach ( $seopress_get_post_types as $key => $value ) { add_meta_box( 'seopress_cpt', __( 'SEO', 'wp-seopress' ), 'seopress_cpt', $key, 'normal', $metaboxe_position ); } } add_meta_box( 'seopress_cpt', __( 'SEO', 'wp-seopress' ), 'seopress_cpt', 'seopress_404', 'normal', $metaboxe_position ); } /** * Display SEO metaboxe * * @param object $post Post object. */ function seopress_cpt( $post ) { global $typenow; global $wp_version; $prefix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_nonce_field( plugin_basename( __FILE__ ), 'seopress_cpt_nonce' ); // init. $disabled = array(); wp_enqueue_script( 'seopress-cpt-tabs', SEOPRESS_ASSETS_DIR . '/js/seopress-metabox' . $prefix . '.js', [ 'jquery-ui-tabs' ], SEOPRESS_VERSION, true ); if ( 'seopress_404' !== $typenow ) { wp_enqueue_script( 'jquery-ui-accordion' ); // Tagify. wp_enqueue_script( 'seopress-tagify', SEOPRESS_ASSETS_DIR . '/js/tagify' . $prefix . '.js', [ 'jquery' ], SEOPRESS_VERSION, true ); wp_register_style( 'seopress-tagify', SEOPRESS_ASSETS_DIR . '/css/tagify' . $prefix . '.css', [], SEOPRESS_VERSION ); wp_enqueue_style( 'seopress-tagify' ); // Register Google Snippet Preview / Content Analysis JS. wp_enqueue_script( 'seopress-cpt-counters', SEOPRESS_ASSETS_DIR . '/js/seopress-counters' . $prefix . '.js', array( 'jquery', 'jquery-ui-tabs', 'jquery-ui-accordion' ), SEOPRESS_VERSION, array( 'strategy' => 'defer', 'in_footer' => true, ) ); // If Gutenberg ON. if ( function_exists( 'get_current_screen' ) ) { $get_current_screen = get_current_screen(); if ( isset( $get_current_screen->is_block_editor ) ) { if ( $get_current_screen->is_block_editor ) { wp_enqueue_script( 'seopress-block-editor', SEOPRESS_ASSETS_DIR . '/js/seopress-block-editor' . $prefix . '.js', array( 'jquery' ), SEOPRESS_VERSION, true ); if ( post_type_supports( get_post_type( $post ), 'custom-fields' ) ) { wp_enqueue_script( 'seopress-pre-publish-checklist', SEOPRESS_URL_PUBLIC . '/editor/pre-publish-checklist/index.js', array(), SEOPRESS_VERSION, true ); } // Only enqueue toolbar button if universal metabox is not disabled and enabled for this post type. if ( ! seopress_get_service( 'AdvancedOption' )->getDisableUniversalMetaboxGutenberg() && seopress_get_service( 'AdvancedOption' )->getAccessUniversalMetaboxGutenberg() && '1' !== seopress_get_service( 'TitleOption' )->getSingleCptEnable( $post->post_type ) ) { wp_enqueue_script( 'seopress-sidebar-panel', SEOPRESS_URL_PUBLIC . '/editor/sidebar-panel/index.js', array( 'wp-plugins', 'wp-edit-post', 'wp-element', 'wp-components', 'wp-i18n' ), SEOPRESS_VERSION, true ); } if ( version_compare( $wp_version, '5.8', '>=' ) ) { global $pagenow; if ( ( 'post' === $typenow || 'product' === $typenow ) && ( 'post.php' === $pagenow || 'post-new.php' === $pagenow ) ) { wp_enqueue_script( 'seopress-primary-category', SEOPRESS_URL_PUBLIC . '/editor/primary-category-select/index.js', array( 'wp-hooks' ), SEOPRESS_VERSION, true ); } } } elseif ( 'post' === $typenow || 'product' === $typenow ) { $seopress_robots_primary_cat = get_post_meta( $post->ID, '_seopress_robots_primary_cat', true ); wp_enqueue_script( 'seopress-primary-category-classic', SEOPRESS_ASSETS_DIR . '/js/seopress-primary-category-classic.js', array(), SEOPRESS_VERSION, true ); wp_localize_script( 'seopress-primary-category-classic', 'seopressPrimaryCategorySelectData', array( 'selectHTML' => seopress_primary_category_select( false, false ), 'primaryCategory' => $seopress_robots_primary_cat, ) ); } } } wp_enqueue_script( 'seopress-cpt-video-sitemap', SEOPRESS_ASSETS_DIR . '/js/seopress-sitemap-video' . $prefix . '.js', array( 'jquery', 'jquery-ui-accordion' ), SEOPRESS_VERSION, true ); $seopress_real_preview = array( 'seopress_nonce' => wp_create_nonce( 'seopress_real_preview_nonce' ), // @deprecated 4.4.0 'seopress_real_preview' => admin_url( 'admin-ajax.php' ), // @deprecated 4.4.0 'i18n' => array( 'progress' => __( 'Analysis in progress...', 'wp-seopress' ) ), 'ajax_url' => admin_url( 'admin-ajax.php' ), 'get_preview_meta_title' => wp_create_nonce( 'get_preview_meta_title' ), 'get_preview_meta_description' => wp_create_nonce( 'get_preview_meta_description' ), ); wp_localize_script( 'seopress-cpt-counters', 'seopressAjaxRealPreview', $seopress_real_preview ); wp_enqueue_script( 'seopress-media-uploader', SEOPRESS_ASSETS_DIR . '/js/seopress-media-uploader' . $prefix . '.js', array( 'jquery' ), SEOPRESS_VERSION, false ); wp_enqueue_media(); } $seopress_titles_title = get_post_meta( $post->ID, '_seopress_titles_title', true ); $seopress_titles_desc = get_post_meta( $post->ID, '_seopress_titles_desc', true ); $disabled['robots_index'] = ''; if ( seopress_get_service( 'TitleOption' )->getSingleCptNoIndex() || seopress_get_service( 'TitleOption' )->getTitleNoIndex() || true === post_password_required( $post->ID ) ) { $seopress_robots_index = 'yes'; $disabled['robots_index'] = 'disabled'; } else { $seopress_robots_index = get_post_meta( $post->ID, '_seopress_robots_index', true ); } $disabled['robots_follow'] = ''; if ( seopress_get_service( 'TitleOption' )->getSingleCptNoFollow() || seopress_get_service( 'TitleOption' )->getTitleNoFollow() ) { $seopress_robots_follow = 'yes'; $disabled['robots_follow'] = 'disabled'; } else { $seopress_robots_follow = get_post_meta( $post->ID, '_seopress_robots_follow', true ); } $disabled['snippet'] = ''; if ( seopress_get_service( 'TitleOption' )->getTitleNoSnippet() ) { $seopress_robots_snippet = 'yes'; $disabled['snippet'] = 'disabled'; } else { $seopress_robots_snippet = get_post_meta( $post->ID, '_seopress_robots_snippet', true ); } $disabled['imageindex'] = ''; if ( seopress_get_service( 'TitleOption' )->getTitleNoImageIndex() ) { $seopress_robots_imageindex = 'yes'; $disabled['imageindex'] = 'disabled'; } else { $seopress_robots_imageindex = get_post_meta( $post->ID, '_seopress_robots_imageindex', true ); } $seopress_robots_canonical = get_post_meta( $post->ID, '_seopress_robots_canonical', true ); $seopress_robots_primary_cat = get_post_meta( $post->ID, '_seopress_robots_primary_cat', true ); $seopress_robots_freeze_modified_date = get_post_meta( $post->ID, '_seopress_robots_freeze_modified_date', true ); if ( '' === $seopress_robots_freeze_modified_date && '1' === seopress_get_service( 'AdvancedOption' )->getAppearanceFreezeModifiedDate() ) { $seopress_robots_freeze_modified_date = 'yes'; } $seopress_robots_custom_modified_date = get_post_meta( $post->ID, '_seopress_robots_custom_modified_date', true ); $seopress_social_fb_title = get_post_meta( $post->ID, '_seopress_social_fb_title', true ); $seopress_social_fb_desc = get_post_meta( $post->ID, '_seopress_social_fb_desc', true ); $seopress_social_fb_img = get_post_meta( $post->ID, '_seopress_social_fb_img', true ); $seopress_social_fb_img_attachment_id = get_post_meta( $post->ID, '_seopress_social_fb_img_attachment_id', true ); $seopress_social_fb_img_width = get_post_meta( $post->ID, '_seopress_social_fb_img_width', true ); $seopress_social_fb_img_height = get_post_meta( $post->ID, '_seopress_social_fb_img_height', true ); $seopress_social_twitter_title = get_post_meta( $post->ID, '_seopress_social_twitter_title', true ); $seopress_social_twitter_desc = get_post_meta( $post->ID, '_seopress_social_twitter_desc', true ); $seopress_social_twitter_img = get_post_meta( $post->ID, '_seopress_social_twitter_img', true ); $seopress_social_twitter_img_attachment_id = get_post_meta( $post->ID, '_seopress_social_twitter_img_attachment_id', true ); $seopress_social_twitter_img_width = get_post_meta( $post->ID, '_seopress_social_twitter_img_width', true ); $seopress_social_twitter_img_height = get_post_meta( $post->ID, '_seopress_social_twitter_img_height', true ); $seopress_redirections_enabled = get_post_meta( $post->ID, '_seopress_redirections_enabled', true ); $seopress_redirections_enabled_regex = get_post_meta( $post->ID, '_seopress_redirections_enabled_regex', true ); $seopress_redirections_logged_status = get_post_meta( $post->ID, '_seopress_redirections_logged_status', true ); $seopress_redirections_type = get_post_meta( $post->ID, '_seopress_redirections_type', true ); $seopress_redirections_value = get_post_meta( $post->ID, '_seopress_redirections_value', true ); $seopress_redirections_param = get_post_meta( $post->ID, '_seopress_redirections_param', true ); require_once dirname( __DIR__ ) . '/admin-dyn-variables-helper.php'; // Dynamic variables. require_once __DIR__ . '/admin-metaboxes-form.php'; // Metaboxe HTML. do_action( 'seopress_seo_metabox_init' ); } add_action( 'save_post', 'seopress_save_metabox', 10, 2 ); /** * Save metabox * * @param int $post_id Post ID. * @param object $post Post object. */ function seopress_save_metabox( $post_id, $post ) { // Nonce. if ( ! isset( $_POST['seopress_cpt_nonce'] ) || ! wp_verify_nonce( $_POST['seopress_cpt_nonce'], plugin_basename( __FILE__ ) ) ) { return $post_id; } // Post type object. $post_type = get_post_type_object( $post->post_type ); // Check permission. if ( ! current_user_can( $post_type->cap->edit_post, $post_id ) ) { return $post_id; } if ( 'attachment' !== get_post_type( $post_id ) ) { $seo_tabs = isset( $_POST['seo_tabs'] ) ? json_decode( stripslashes( htmlspecialchars_decode( $_POST['seo_tabs'] ) ), true ) : array(); if ( json_last_error() !== JSON_ERROR_NONE ) { return $post_id; } if ( in_array( 'title-tab', $seo_tabs, true ) ) { if ( ! empty( $_POST['seopress_titles_title'] ) ) { update_post_meta( $post_id, '_seopress_titles_title', sanitize_text_field( $_POST['seopress_titles_title'] ) ); } else { delete_post_meta( $post_id, '_seopress_titles_title' ); } if ( ! empty( $_POST['seopress_titles_desc'] ) ) { update_post_meta( $post_id, '_seopress_titles_desc', sanitize_textarea_field( $_POST['seopress_titles_desc'] ) ); } else { delete_post_meta( $post_id, '_seopress_titles_desc' ); } } if ( in_array( 'advanced-tab', $seo_tabs, true ) ) { if ( isset( $_POST['seopress_robots_index'] ) ) { update_post_meta( $post_id, '_seopress_robots_index', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_robots_index' ); } if ( isset( $_POST['seopress_robots_follow'] ) ) { update_post_meta( $post_id, '_seopress_robots_follow', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_robots_follow' ); } if ( isset( $_POST['seopress_robots_imageindex'] ) ) { update_post_meta( $post_id, '_seopress_robots_imageindex', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_robots_imageindex' ); } if ( isset( $_POST['seopress_robots_snippet'] ) ) { update_post_meta( $post_id, '_seopress_robots_snippet', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_robots_snippet' ); } if ( ! empty( $_POST['seopress_robots_canonical'] ) ) { update_post_meta( $post_id, '_seopress_robots_canonical', sanitize_url( $_POST['seopress_robots_canonical'] ) ); } else { delete_post_meta( $post_id, '_seopress_robots_canonical' ); } if ( ! empty( $_POST['seopress_robots_primary_cat'] ) ) { update_post_meta( $post_id, '_seopress_robots_primary_cat', sanitize_text_field( $_POST['seopress_robots_primary_cat'] ) ); } else { delete_post_meta( $post_id, '_seopress_robots_primary_cat' ); } if ( isset( $_POST['seopress_robots_freeze_modified_date'] ) ) { update_post_meta( $post_id, '_seopress_robots_freeze_modified_date', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_robots_freeze_modified_date' ); } if ( ! empty( $_POST['seopress_robots_custom_modified_date'] ) ) { update_post_meta( $post_id, '_seopress_robots_custom_modified_date', sanitize_text_field( $_POST['seopress_robots_custom_modified_date'] ) ); } else { delete_post_meta( $post_id, '_seopress_robots_custom_modified_date' ); } } if ( in_array( 'social-tab', $seo_tabs, true ) ) { // Facebook. if ( ! empty( $_POST['seopress_social_fb_title'] ) ) { update_post_meta( $post_id, '_seopress_social_fb_title', sanitize_text_field( $_POST['seopress_social_fb_title'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_fb_title' ); } if ( ! empty( $_POST['seopress_social_fb_desc'] ) ) { update_post_meta( $post_id, '_seopress_social_fb_desc', sanitize_textarea_field( $_POST['seopress_social_fb_desc'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_fb_desc' ); } if ( ! empty( $_POST['seopress_social_fb_img'] ) ) { update_post_meta( $post_id, '_seopress_social_fb_img', sanitize_url( $_POST['seopress_social_fb_img'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_fb_img' ); } if ( ! empty( $_POST['seopress_social_fb_img_attachment_id'] ) && ! empty( $_POST['seopress_social_fb_img'] ) ) { update_post_meta( $post_id, '_seopress_social_fb_img_attachment_id', sanitize_text_field( $_POST['seopress_social_fb_img_attachment_id'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_fb_img_attachment_id' ); } if ( ! empty( $_POST['seopress_social_fb_img_width'] ) && ! empty( $_POST['seopress_social_fb_img'] ) ) { update_post_meta( $post_id, '_seopress_social_fb_img_width', sanitize_text_field( $_POST['seopress_social_fb_img_width'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_fb_img_width' ); } if ( ! empty( $_POST['seopress_social_fb_img_height'] ) && ! empty( $_POST['seopress_social_fb_img'] ) ) { update_post_meta( $post_id, '_seopress_social_fb_img_height', sanitize_text_field( $_POST['seopress_social_fb_img_height'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_fb_img_height' ); } // Twitter. if ( ! empty( $_POST['seopress_social_twitter_title'] ) ) { update_post_meta( $post_id, '_seopress_social_twitter_title', sanitize_text_field( $_POST['seopress_social_twitter_title'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_twitter_title' ); } if ( ! empty( $_POST['seopress_social_twitter_desc'] ) ) { update_post_meta( $post_id, '_seopress_social_twitter_desc', sanitize_textarea_field( $_POST['seopress_social_twitter_desc'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_twitter_desc' ); } if ( ! empty( $_POST['seopress_social_twitter_img'] ) ) { update_post_meta( $post_id, '_seopress_social_twitter_img', sanitize_url( $_POST['seopress_social_twitter_img'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_twitter_img' ); } if ( ! empty( $_POST['seopress_social_twitter_img_attachment_id'] ) && ! empty( $_POST['seopress_social_twitter_img'] ) ) { update_post_meta( $post_id, '_seopress_social_twitter_img_attachment_id', sanitize_text_field( $_POST['seopress_social_twitter_img_attachment_id'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_twitter_img_attachment_id' ); } if ( ! empty( $_POST['seopress_social_twitter_img_width'] ) && ! empty( $_POST['seopress_social_twitter_img'] ) ) { update_post_meta( $post_id, '_seopress_social_twitter_img_width', sanitize_text_field( $_POST['seopress_social_twitter_img_width'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_twitter_img_width' ); } if ( ! empty( $_POST['seopress_social_twitter_img_height'] ) && ! empty( $_POST['seopress_social_twitter_img'] ) ) { update_post_meta( $post_id, '_seopress_social_twitter_img_height', sanitize_text_field( $_POST['seopress_social_twitter_img_height'] ) ); } else { delete_post_meta( $post_id, '_seopress_social_twitter_img_height' ); } } if ( in_array( 'redirect-tab', $seo_tabs, true ) ) { if ( isset( $_POST['seopress_redirections_type'] ) ) { $redirection_type = intval( $_POST['seopress_redirections_type'] ); if ( in_array( $redirection_type, array( 301, 302, 307, 410, 451 ), true ) ) { update_post_meta( $post_id, '_seopress_redirections_type', $redirection_type ); } else { delete_post_meta( $post_id, '_seopress_redirections_type' ); } } if ( ! empty( $_POST['seopress_redirections_value'] ) ) { update_post_meta( $post_id, '_seopress_redirections_value', sanitize_url( $_POST['seopress_redirections_value'] ) ); } else { delete_post_meta( $post_id, '_seopress_redirections_value' ); } if ( isset( $_POST['seopress_redirections_enabled'] ) ) { update_post_meta( $post_id, '_seopress_redirections_enabled', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_redirections_enabled', '' ); } if ( isset( $_POST['seopress_redirections_enabled_regex'] ) ) { update_post_meta( $post_id, '_seopress_redirections_enabled_regex', 'yes' ); } else { delete_post_meta( $post_id, '_seopress_redirections_enabled_regex' ); } if ( isset( $_POST['seopress_redirections_logged_status'] ) ) { $logged_status = sanitize_text_field( $_POST['seopress_redirections_logged_status'] ); $allowed_options = array( 'both', 'only_logged_in', 'only_not_logged_in' ); if ( in_array( $logged_status, $allowed_options, true ) ) { update_post_meta( $post_id, '_seopress_redirections_logged_status', $logged_status ); } else { delete_post_meta( $post_id, '_seopress_redirections_logged_status' ); } } if ( isset( $_POST['seopress_redirections_param'] ) ) { $redirections_param = sanitize_text_field( $_POST['seopress_redirections_param'] ); $allowed_options = array( 'exact_match', 'without_param', 'with_ignored_param' ); if ( in_array( $redirections_param, $allowed_options, true ) ) { update_post_meta( $post_id, '_seopress_redirections_param', $redirections_param ); } else { delete_post_meta( $post_id, '_seopress_redirections_param' ); } } } do_action( 'seopress_seo_metabox_save', $post_id, $seo_tabs ); } } } /** * Display CA metaboxe */ function seopress_display_ca_metaboxe() { add_action( 'add_meta_boxes', 'seopress_init_ca_metabox' ); /** * Init CA metabox */ function seopress_init_ca_metabox() { if ( seopress_get_service( 'AdvancedOption' )->getAppearanceMetaboxePosition() !== null ) { $metaboxe_position = seopress_get_service( 'AdvancedOption' )->getAppearanceMetaboxePosition(); } else { $metaboxe_position = 'default'; } $seopress_get_post_types = seopress_get_service( 'WordPressData' )->getPostTypes(); $seopress_get_post_types = apply_filters( 'seopress_metaboxe_content_analysis', $seopress_get_post_types ); if ( ! empty( $seopress_get_post_types ) && ! seopress_get_service( 'EnqueueModuleMetabox' )->canEnqueue() ) { foreach ( $seopress_get_post_types as $key => $value ) { add_meta_box( 'seopress_content_analysis', __( 'Content analysis', 'wp-seopress' ), 'seopress_content_analysis', $key, 'normal', $metaboxe_position ); } } } /** * Display CA metaboxe * * @param object $post Post object. */ function seopress_content_analysis( $post ) { $prefix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_nonce_field( plugin_basename( __FILE__ ), 'seopress_content_analysis_nonce' ); // Tagify. wp_enqueue_script( 'seopress-tagify', SEOPRESS_ASSETS_DIR . '/js/tagify' . $prefix . '.js', array( 'jquery' ), SEOPRESS_VERSION, true ); wp_register_style( 'seopress-tagify', SEOPRESS_ASSETS_DIR . '/css/tagify' . $prefix . '.css', array(), SEOPRESS_VERSION ); wp_enqueue_style( 'seopress-tagify' ); wp_enqueue_script( 'seopress-cpt-counters', SEOPRESS_ASSETS_DIR . '/js/seopress-counters' . $prefix . '.js', array( 'jquery', 'jquery-ui-tabs', 'jquery-ui-accordion', 'jquery-ui-autocomplete' ), SEOPRESS_VERSION, array( 'strategy' => 'defer', 'in_footer' => true, ) ); $seopress_real_preview = array( 'seopress_nonce' => wp_create_nonce( 'seopress_real_preview_nonce' ), 'seopress_real_preview' => admin_url( 'admin-ajax.php' ), 'i18n' => array( 'progress' => __( 'Analysis in progress...', 'wp-seopress' ) ), 'ajax_url' => admin_url( 'admin-ajax.php' ), 'get_preview_meta_title' => wp_create_nonce( 'get_preview_meta_title' ), 'get_preview_meta_description' => wp_create_nonce( 'get_preview_meta_description' ), ); wp_localize_script( 'seopress-cpt-counters', 'seopressAjaxRealPreview', $seopress_real_preview ); $seopress_inspect_url = array( 'seopress_nonce' => wp_create_nonce( 'seopress_inspect_url_nonce' ), 'seopress_inspect_url' => admin_url( 'admin-ajax.php' ), ); wp_localize_script( 'seopress-cpt-counters', 'seopressAjaxInspectUrl', $seopress_inspect_url ); $seopress_analysis_target_kw = get_post_meta( $post->ID, '_seopress_analysis_target_kw', true ); $seopress_analysis_data = get_post_meta( $post->ID, '_seopress_analysis_data', true ); $seopress_titles_title = get_post_meta( $post->ID, '_seopress_titles_title', true ); $seopress_titles_desc = get_post_meta( $post->ID, '_seopress_titles_desc', true ); if ( seopress_get_service( 'TitleOption' )->getSingleCptNoIndex() || seopress_get_service( 'TitleOption' )->getTitleNoIndex() || true === post_password_required( $post->ID ) ) { $seopress_robots_index = 'yes'; } else { $seopress_robots_index = get_post_meta( $post->ID, '_seopress_robots_index', true ); } if ( seopress_get_service( 'TitleOption' )->getSingleCptNoFollow() || seopress_get_service( 'TitleOption' )->getTitleNoFollow() ) { $seopress_robots_follow = 'yes'; } else { $seopress_robots_follow = get_post_meta( $post->ID, '_seopress_robots_follow', true ); } if ( seopress_get_service( 'TitleOption' )->getTitleNoSnippet() ) { $seopress_robots_snippet = 'yes'; } else { $seopress_robots_snippet = get_post_meta( $post->ID, '_seopress_robots_snippet', true ); } if ( seopress_get_service( 'TitleOption' )->getTitleNoImageIndex() ) { $seopress_robots_imageindex = 'yes'; } else { $seopress_robots_imageindex = get_post_meta( $post->ID, '_seopress_robots_imageindex', true ); } require_once __DIR__ . '/admin-metaboxes-content-analysis-form.php'; // Metaboxe HTML. } add_action( 'save_post', 'seopress_save_ca_metabox', 10, 2 ); /** * Save CA metabox * * @param int $post_id Post ID. * @param object $post Post object. */ function seopress_save_ca_metabox( $post_id, $post ) { // Nonce. if ( ! isset( $_POST['seopress_content_analysis_nonce'] ) || ! wp_verify_nonce( $_POST['seopress_content_analysis_nonce'], plugin_basename( __FILE__ ) ) ) { return $post_id; } // Post type object. $post_type = get_post_type_object( $post->post_type ); // Check permission. if ( ! current_user_can( $post_type->cap->edit_post, $post_id ) ) { return $post_id; } if ( 'attachment' !== get_post_type( $post_id ) ) { if ( isset( $_POST['seopress_analysis_target_kw'] ) ) { $target_kw = sanitize_text_field( $_POST['seopress_analysis_target_kw'] ); update_post_meta( $post_id, '_seopress_analysis_target_kw', $target_kw ); } } } } if ( is_user_logged_in() ) { if ( is_super_admin() ) { echo seopress_display_seo_metaboxe(); echo seopress_display_ca_metaboxe(); } else { global $wp_roles; $user = wp_get_current_user(); // Get current user role. if ( isset( $user->roles ) && is_array( $user->roles ) && ! empty( $user->roles ) ) { $seopress_user_role = current( $user->roles ); // If current user role matchs values from Security settings then apply -- SEO Metaboxe. if ( ! empty( seopress_get_service( 'AdvancedOption' )->getSecurityMetaboxRole() ) ) { if ( array_key_exists( $seopress_user_role, seopress_get_service( 'AdvancedOption' )->getSecurityMetaboxRole() ) ) { // Do nothing. } else { echo seopress_display_seo_metaboxe(); } } else { echo seopress_display_seo_metaboxe(); } // If current user role matchs values from Security settings then apply -- SEO Content Analysis. if ( ! empty( seopress_get_service( 'AdvancedOption' )->getSecurityMetaboxRoleContentAnalysis() ) ) { if ( array_key_exists( $seopress_user_role, seopress_get_service( 'AdvancedOption' )->getSecurityMetaboxRoleContentAnalysis() ) ) { // Do nothing. } else { echo seopress_display_ca_metaboxe(); } } else { echo seopress_display_ca_metaboxe(); } } } }