PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.5
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.5
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 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / admin / class-export.php
wordpress-seo / admin Last commit date
ajax 2 years ago capabilities 1 year ago endpoints 2 years ago exceptions 3 months ago filters 3 months ago formatter 1 year ago google_search_console 3 months ago import 3 months ago listeners 8 years ago menu 3 months ago metabox 3 months ago notifiers 3 months ago pages 3 months ago roles 3 months ago services 3 months ago statistics 3 months ago taxonomy 3 months ago tracking 3 months ago views 3 months ago watchers 3 months ago admin-settings-changed-listener.php 2 years ago ajax.php 3 months ago class-admin-asset-analysis-worker-location.php 3 months ago class-admin-asset-dev-server-location.php 3 months ago class-admin-asset-location.php 8 years ago class-admin-asset-manager.php 3 months ago class-admin-asset-seo-location.php 4 years ago class-admin-editor-specific-replace-vars.php 3 months ago class-admin-gutenberg-compatibility-notification.php 3 months ago class-admin-help-panel.php 3 months ago class-admin-init.php 3 months ago class-admin-recommended-replace-vars.php 2 years ago class-admin-user-profile.php 7 months ago class-admin-utils.php 3 months ago class-admin.php 3 months ago class-asset.php 1 year ago class-bulk-description-editor-list-table.php 3 months ago class-bulk-editor-list-table.php 3 months ago class-bulk-title-editor-list-table.php 3 months ago class-collector.php 1 year ago class-config.php 3 months ago class-database-proxy.php 3 months ago class-export.php 3 months ago class-expose-shortlinks.php 7 months ago class-gutenberg-compatibility.php 1 month ago class-meta-columns.php 3 months ago class-my-yoast-proxy.php 3 months ago class-option-tab.php 4 years ago class-option-tabs-formatter.php 3 months ago class-option-tabs.php 2 years ago class-paper-presenter.php 5 years ago class-plugin-availability.php 3 months ago class-plugin-conflict.php 2 years ago class-premium-popup.php 1 year ago class-premium-upsell-admin-block.php 3 months ago class-primary-term-admin.php 3 months ago class-product-upsell-notice.php 3 months ago class-remote-request.php 2 years ago class-schema-person-upgrade-notification.php 3 months ago class-suggested-plugins.php 3 months ago class-wincher-dashboard-widget.php 3 months ago class-yoast-columns.php 3 months ago class-yoast-dashboard-widget.php 3 months ago class-yoast-form.php 3 months ago class-yoast-input-validation.php 3 months ago class-yoast-network-admin.php 3 months ago class-yoast-network-settings-api.php 3 months ago class-yoast-notification-center.php 3 months ago class-yoast-notification.php 3 months ago class-yoast-notifications.php 3 months ago class-yoast-plugin-conflict.php 3 months ago index.php 10 years ago interface-collection.php 7 years ago interface-installable.php 8 years ago
class-export.php
165 lines
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin\Export
6 */
7
8 /**
9 * Class WPSEO_Export.
10 *
11 * Class with functionality to export the WP SEO settings.
12 */
13 class WPSEO_Export {
14
15 /**
16 * Holds the nonce action.
17 *
18 * @var string
19 */
20 public const NONCE_ACTION = 'wpseo_export';
21
22 /**
23 * Holds the export data.
24 *
25 * @var string
26 */
27 private $export = '';
28
29 /**
30 * Holds whether the export was a success.
31 *
32 * @var bool
33 */
34 public $success;
35
36 /**
37 * Handles the export request.
38 *
39 * @return void
40 */
41 public function export() {
42 check_admin_referer( self::NONCE_ACTION );
43 $this->export_settings();
44 $this->output();
45 }
46
47 /**
48 * Outputs the export.
49 *
50 * @return void
51 */
52 public function output() {
53 if ( ! WPSEO_Capability_Utils::current_user_can( 'wpseo_manage_options' ) ) {
54 esc_html_e( 'You do not have the required rights to export settings.', 'wordpress-seo' );
55 return;
56 }
57
58 echo '<p id="wpseo-settings-export-desc">';
59 printf(
60 /* translators: %1$s expands to Import settings */
61 esc_html__(
62 'Copy all these settings to another site\'s %1$s tab and click "%1$s" there.',
63 'wordpress-seo',
64 ),
65 esc_html__(
66 'Import settings',
67 'wordpress-seo',
68 ),
69 );
70 echo '</p>';
71 /* translators: %1$s expands to Yoast SEO */
72 echo '<label for="wpseo-settings-export" class="yoast-inline-label">' . sprintf( __( 'Your %1$s settings:', 'wordpress-seo' ), 'Yoast SEO' ) . '</label><br />';
73 echo '<textarea id="wpseo-settings-export" rows="20" cols="100" aria-describedby="wpseo-settings-export-desc">' . esc_textarea( $this->export ) . '</textarea>';
74 }
75
76 /**
77 * Exports the current site's WP SEO settings.
78 *
79 * @return void
80 */
81 private function export_settings() {
82 $this->export_header();
83
84 foreach ( WPSEO_Options::get_option_names() as $opt_group ) {
85 $this->write_opt_group( $opt_group );
86 }
87 }
88
89 /**
90 * Writes the header of the export.
91 *
92 * @return void
93 */
94 private function export_header() {
95 $header = sprintf(
96 /* translators: %1$s expands to Yoast SEO, %2$s expands to Yoast.com */
97 esc_html__( 'These are settings for the %1$s plugin by %2$s', 'wordpress-seo' ),
98 'Yoast SEO',
99 'Yoast.com',
100 );
101 $this->write_line( '; ' . $header );
102 }
103
104 /**
105 * Writes a line to the export.
106 *
107 * @param string $line Line string.
108 * @param bool $newline_first Boolean flag whether to prepend with new line.
109 *
110 * @return void
111 */
112 private function write_line( $line, $newline_first = false ) {
113 if ( $newline_first ) {
114 $this->export .= PHP_EOL;
115 }
116 $this->export .= $line . PHP_EOL;
117 }
118
119 /**
120 * Writes an entire option group to the export.
121 *
122 * @param string $opt_group Option group name.
123 *
124 * @return void
125 */
126 private function write_opt_group( $opt_group ) {
127
128 $this->write_line( '[' . $opt_group . ']', true );
129
130 $options = get_option( $opt_group );
131
132 if ( ! is_array( $options ) ) {
133 return;
134 }
135
136 foreach ( $options as $key => $elem ) {
137 if ( is_array( $elem ) ) {
138 $count = count( $elem );
139 for ( $i = 0; $i < $count; $i++ ) {
140 $elem_check = ( $elem[ $i ] ?? null );
141 $this->write_setting( $key . '[]', $elem_check );
142 }
143 }
144 else {
145 $this->write_setting( $key, $elem );
146 }
147 }
148 }
149
150 /**
151 * Writes a settings line to the export.
152 *
153 * @param string $key Key string.
154 * @param string $val Value string.
155 *
156 * @return void
157 */
158 private function write_setting( $key, $val ) {
159 if ( is_string( $val ) ) {
160 $val = '"' . $val . '"';
161 }
162 $this->write_line( $key . ' = ' . $val );
163 }
164 }
165