ry'] !== '' ) {
$old_url .= '?' . $parsed_url['query'];
}
$old_url = rawurlencode( $old_url );
$node = [
'id' => 'wpseo-premium-create-redirect',
'title' => __( 'Create Redirect', 'wordpress-seo-premium' ),
'href' => wp_nonce_url( admin_url( 'admin.php?page=wpseo_redirects&old_url=' . $old_url ), 'wpseo_redirects-old-url', 'wpseo_premium_redirects_nonce' ),
];
$wp_admin_bar->add_menu( $node );
}
/**
* Add page analysis to array with variable array key patterns
*
* @param array $patterns Array with patterns for page analysis.
*
* @return array
*/
public function add_variable_array_key_pattern( $patterns ) {
if ( in_array( 'page-analyse-extra-', $patterns, true ) === false ) {
$patterns[] = 'page-analyse-extra-';
}
return $patterns;
}
/**
* This hook will add an input-field for specifying custom fields for page analysis.
*
* The values will be comma-separated and will target the belonging field in the post_meta. Page analysis will
* use the content of it by sticking it to the post_content.
*
* @param Yoast_Form $yform The Yoast_Form object.
* @param string $name The post type name.
*/
public function admin_page_meta_post_types_checkboxes( $yform, $name ) {
$custom_fields_help_link = new Help_Link_Presenter(
WPSEO_Shortlinker::get( 'https://yoa.st/4cr' ),
__( 'Learn more about including custom fields in the page analysis', 'wordpress-seo-premium' )
);
echo '
';
$yform->textinput_extra_content(
'page-analyse-extra-' . $name,
esc_html__( 'Custom fields to include in page analysis', 'wordpress-seo-premium' ),
[
'extra_content' => $custom_fields_help_link,
]
);
echo '
';
}
/**
* Function adds the premium pages to the Yoast SEO menu
*
* @param array $submenu_pages Array with the configuration for the submenu pages.
*
* @return array
*/
public function add_submenu_pages( $submenu_pages ) {
/**
* Filter: 'wpseo_premium_manage_redirects_role' - Change the minimum rule to access and change the site redirects
*
* @api string wpseo_manage_redirects
*/
$submenu_pages[] = [
'wpseo_dashboard',
'',
__( 'Redirects', 'wordpress-seo-premium' ) . ' ',
'wpseo_manage_redirects',
'wpseo_redirects',
[ $this->redirects, 'display' ],
];
return $submenu_pages;
}
/**
* Change premium indicator to green when premium is enabled
*
* @param string[] $classes The current classes for the indicator.
*
* @return string[] The new classes for the indicator.
*/
public function change_premium_indicator( $classes ) {
$class_no = array_search( 'wpseo-premium-indicator--no', $classes, true );
if ( $class_no !== false ) {
unset( $classes[ $class_no ] );
$classes[] = 'wpseo-premium-indicator--yes';
}
return $classes;
}
/**
* Replaces the screen reader text for the premium indicator.
*
* @param string $text The original text.
*
* @return string The new text.
*/
public function change_premium_indicator_text( $text ) {
return __( 'Enabled', 'wordpress-seo-premium' );
}
/**
* Register the premium settings
*/
public function register_settings() {
register_setting( 'yoast_wpseo_redirect_options', 'wpseo_redirect' );
}
/**
* Output admin css in admin head
*/
public function admin_css() {
echo "";
}
/**
* Load textdomain
*/
private function load_textdomain() {
load_plugin_textdomain( 'wordpress-seo-premium', false, dirname( WPSEO_PREMIUM_BASENAME ) . '/languages/' );
}
/**
* Initializes the HelpScout support modal for WPSEO settings pages.
*
* @param array $helpscout_settings The helpscout settings.
*
* @return array The HelpScout beacon settings array.
*/
public function filter_helpscout_beacon( $helpscout_settings ) {
$beacon_id = '1ae02e91-5865-4f13-b220-7daed946ba25';
$helpscout_settings['products'][] = WPSEO_Addon_Manager::PREMIUM_SLUG;
// Set the beacon to the premium beacon for all pages.
foreach ( $helpscout_settings['pages_ids'] as $page => $beacon ) {
$helpscout_settings['pages_ids'][ $page ] = $beacon_id;
}
// Add the redirects page.
$helpscout_settings['pages_ids']['wpseo_redirects'] = $beacon_id;
return $helpscout_settings;
}
}