PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.0
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.0
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / admin / views / tabs / network / features.php

features.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 28.0, at admin/views/tabs/network/features.php

116 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin\Views
6 *
7 * @uses Yoast_Form $yform Form object.
8 */
9
10 use Yoast\WP\SEO\Presenters\Admin\Beta_Badge_Presenter;
11 use Yoast\WP\SEO\Presenters\Admin\Premium_Badge_Presenter;
12
13 if ( ! defined( 'WPSEO_VERSION' ) ) {
14 header( 'Status: 403 Forbidden' );
15 header( 'HTTP/1.1 403 Forbidden' );
16 exit();
17 }
18
19 $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
20
21 ?>
22 <h2><?php esc_html_e( 'Features', 'wordpress-seo' ); ?></h2>
23 <div class="yoast-measure">
24 <?php
25 printf(
26 /* translators: %s expands to Yoast SEO */
27 esc_html__( 'This tab allows you to selectively disable %s features for all sites in the network. By default all features are enabled, which allows site admins to choose for themselves if they want to toggle a feature on or off for their site. When you disable a feature here, site admins will not be able to use that feature at all.', 'wordpress-seo' ),
28 'Yoast SEO',
29 );
30
31 foreach ( $feature_toggles as $feature ) {
32 $is_premium = YoastSEO()->helpers->product->is_premium();
33 $premium_version = YoastSEO()->helpers->product->get_premium_version();
34
35 if ( $feature->premium && $feature->premium_version ) {
36 $not_supported_in_current_premium_version = $is_premium && version_compare( $premium_version, $feature->premium_version, '<' );
37
38 if ( $not_supported_in_current_premium_version ) {
39 continue;
40 }
41 }
42
43 $help_text = esc_html( $feature->label );
44 if ( ! empty( $feature->extra ) ) {
45 $help_text .= ' ' . $feature->extra;
46 }
47 if ( ! empty( $feature->read_more_label ) ) {
48 $url = $feature->read_more_url;
49 if ( ! empty( $feature->premium ) && $feature->premium === true ) {
50 $url = $feature->premium_url;
51 }
52 $help_text .= sprintf(
53 '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
54 esc_url( WPSEO_Shortlinker::get( $url ) ),
55 esc_html( $feature->read_more_label ),
56 );
57 }
58
59 $feature_help = new WPSEO_Admin_Help_Panel(
60 WPSEO_Option::ALLOW_KEY_PREFIX . $feature->setting,
61 /* translators: Hidden accessibility text; %s expands to a feature's name. */
62 sprintf( esc_html__( 'Help on: %s', 'wordpress-seo' ), esc_html( $feature->name ) ),
63 $help_text,
64 );
65
66 $name = $feature->name;
67 if ( ! empty( $feature->premium ) && $feature->premium === true ) {
68 $name .= ' ' . new Premium_Badge_Presenter( $feature->name );
69 }
70
71 if ( ! empty( $feature->in_beta ) && $feature->in_beta === true ) {
72 $name .= ' ' . new Beta_Badge_Presenter( $feature->name );
73 }
74
75 $disabled = false;
76 $show_premium_upsell = false;
77 $premium_upsell_url = '';
78 $note_when_disabled = '';
79
80 if ( $feature->premium === true && YoastSEO()->helpers->product->is_premium() === false ) {
81 $disabled = true;
82 $show_premium_upsell = true;
83 $premium_upsell_url = WPSEO_Shortlinker::get( $feature->premium_upsell_url );
84 }
85
86 $preserve_disabled_value = false;
87 if ( $disabled ) {
88 $preserve_disabled_value = true;
89 }
90
91 $yform->toggle_switch(
92 WPSEO_Option::ALLOW_KEY_PREFIX . $feature->setting,
93 [
94 'on' => __( 'Allow Control', 'wordpress-seo' ),
95 'off' => __( 'Disable', 'wordpress-seo' ),
96 ],
97 $name,
98 $feature_help->get_button_html() . $feature_help->get_panel_html(),
99 [
100 'disabled' => $disabled,
101 'preserve_disabled_value' => $preserve_disabled_value,
102 'show_premium_upsell' => $show_premium_upsell,
103 'premium_upsell_url' => $premium_upsell_url,
104 'note_when_disabled' => $note_when_disabled,
105 ],
106 );
107 }
108 ?>
109 </div>
110 <?php
111 /*
112 * Required to prevent our settings framework from saving the default because the field
113 * isn't explicitly set when saving the Dashboard page.
114 */
115 $yform->hidden( 'show_onboarding_notice', 'wpseo_show_onboarding_notice' );
116