Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/jetpack
File: class.jetpack-network.php
'network_wpcom_blog_id' => $network_wpcom_blog_id,
[500] Fix | Delete
'user_id' => get_current_user_id(),
[501] Fix | Delete
[502] Fix | Delete
/*
[503] Fix | Delete
* Use the subsite's registration date as the site creation date.
[504] Fix | Delete
*
[505] Fix | Delete
* This is in contrast to regular standalone sites, where we use the helper
[506] Fix | Delete
* `Jetpack::get_assumed_site_creation_date()` to assume the site's creation date.
[507] Fix | Delete
*/
[508] Fix | Delete
'site_created' => $blog_details->registered,
[509] Fix | Delete
)
[510] Fix | Delete
);
[511] Fix | Delete
}
[512] Fix | Delete
[513] Fix | Delete
/**
[514] Fix | Delete
* A hook handler for adding admin pages and subpages.
[515] Fix | Delete
*/
[516] Fix | Delete
public function wrap_network_admin_page() {
[517] Fix | Delete
Jetpack_Admin_Page::wrap_ui( array( $this, 'network_admin_page' ) );
[518] Fix | Delete
}
[519] Fix | Delete
[520] Fix | Delete
/**
[521] Fix | Delete
* Handles the displaying of all sites on the network that are
[522] Fix | Delete
* dis/connected to Jetpack
[523] Fix | Delete
*
[524] Fix | Delete
* @since 2.9
[525] Fix | Delete
* @see Jetpack_Network::jetpack_sites_list()
[526] Fix | Delete
*/
[527] Fix | Delete
public function network_admin_page() {
[528] Fix | Delete
global $current_site;
[529] Fix | Delete
$this->network_admin_page_header();
[530] Fix | Delete
[531] Fix | Delete
$jp = Jetpack::init();
[532] Fix | Delete
[533] Fix | Delete
// We should be, but ensure we are on the main blog.
[534] Fix | Delete
switch_to_blog( $current_site->blog_id );
[535] Fix | Delete
$main_active = $jp->is_connection_ready();
[536] Fix | Delete
restore_current_blog();
[537] Fix | Delete
[538] Fix | Delete
// If we are in dev mode, just show the notice and bail.
[539] Fix | Delete
if ( ( new Status() )->is_offline_mode() ) {
[540] Fix | Delete
Jetpack::show_development_mode_notice();
[541] Fix | Delete
return;
[542] Fix | Delete
}
[543] Fix | Delete
[544] Fix | Delete
/*
[545] Fix | Delete
* Ensure the main blog is connected as all other subsite blog
[546] Fix | Delete
* connections will feed off this one
[547] Fix | Delete
*/
[548] Fix | Delete
if ( ! $main_active ) {
[549] Fix | Delete
$data = array( 'url' => $jp->build_connect_url() );
[550] Fix | Delete
Jetpack::init()->load_view( 'admin/must-connect-main-blog.php', $data );
[551] Fix | Delete
[552] Fix | Delete
return;
[553] Fix | Delete
}
[554] Fix | Delete
[555] Fix | Delete
require_once __DIR__ . '/class.jetpack-network-sites-list-table.php';
[556] Fix | Delete
[557] Fix | Delete
$network_sites_table = new Jetpack_Network_Sites_List_Table();
[558] Fix | Delete
echo '<div class="wrap"><h2>' . esc_html__( 'Sites', 'jetpack' ) . '</h2>';
[559] Fix | Delete
echo '<form method="post">';
[560] Fix | Delete
$network_sites_table->prepare_items();
[561] Fix | Delete
$network_sites_table->display();
[562] Fix | Delete
echo '</form></div>';
[563] Fix | Delete
}
[564] Fix | Delete
[565] Fix | Delete
/**
[566] Fix | Delete
* Stylized JP header formatting
[567] Fix | Delete
*
[568] Fix | Delete
* @since 2.9
[569] Fix | Delete
*/
[570] Fix | Delete
public function network_admin_page_header() {
[571] Fix | Delete
$is_connected = Jetpack::is_connection_ready();
[572] Fix | Delete
[573] Fix | Delete
$data = array(
[574] Fix | Delete
'is_connected' => $is_connected,
[575] Fix | Delete
);
[576] Fix | Delete
Jetpack::init()->load_view( 'admin/network-admin-header.php', $data );
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
/**
[580] Fix | Delete
* Fires when the Jetpack > Settings page is saved.
[581] Fix | Delete
*
[582] Fix | Delete
* @since 2.9
[583] Fix | Delete
* @return never
[584] Fix | Delete
*/
[585] Fix | Delete
public function save_network_settings_page() {
[586] Fix | Delete
[587] Fix | Delete
if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'jetpack-network-settings' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
[588] Fix | Delete
// No nonce, push back to settings page.
[589] Fix | Delete
wp_safe_redirect(
[590] Fix | Delete
add_query_arg(
[591] Fix | Delete
array( 'page' => 'jetpack-settings' ),
[592] Fix | Delete
network_admin_url( 'admin.php' )
[593] Fix | Delete
)
[594] Fix | Delete
);
[595] Fix | Delete
exit( 0 );
[596] Fix | Delete
}
[597] Fix | Delete
[598] Fix | Delete
// Try to save the Protect allow list before anything else, since that action can result in errors.
[599] Fix | Delete
$allow_list = isset( $_POST['global-allow-list'] ) ? filter_var( wp_unslash( $_POST['global-allow-list'] ) ) : '';
[600] Fix | Delete
$allow_list = str_replace( ' ', '', $allow_list );
[601] Fix | Delete
$allow_list = explode( PHP_EOL, $allow_list );
[602] Fix | Delete
$result = Brute_Force_Protection_Shared_Functions::save_allow_list( $allow_list, true );
[603] Fix | Delete
if ( is_wp_error( $result ) ) {
[604] Fix | Delete
wp_safe_redirect(
[605] Fix | Delete
add_query_arg(
[606] Fix | Delete
array(
[607] Fix | Delete
'page' => 'jetpack-settings',
[608] Fix | Delete
'error' => 'jetpack_protect_whitelist',
[609] Fix | Delete
),
[610] Fix | Delete
network_admin_url( 'admin.php' )
[611] Fix | Delete
)
[612] Fix | Delete
);
[613] Fix | Delete
exit( 0 );
[614] Fix | Delete
}
[615] Fix | Delete
[616] Fix | Delete
/*
[617] Fix | Delete
* Fields
[618] Fix | Delete
*
[619] Fix | Delete
* auto-connect - Checkbox for global Jetpack connection
[620] Fix | Delete
* sub-site-connection-override - Allow sub-site admins to (dis)reconnect with their own Jetpack account
[621] Fix | Delete
*/
[622] Fix | Delete
$auto_connect = 0;
[623] Fix | Delete
if ( isset( $_POST['auto-connect'] ) ) {
[624] Fix | Delete
$auto_connect = 1;
[625] Fix | Delete
}
[626] Fix | Delete
[627] Fix | Delete
$sub_site_connection_override = 0;
[628] Fix | Delete
if ( isset( $_POST['sub-site-connection-override'] ) ) {
[629] Fix | Delete
$sub_site_connection_override = 1;
[630] Fix | Delete
}
[631] Fix | Delete
[632] Fix | Delete
$data = array(
[633] Fix | Delete
'auto-connect' => $auto_connect,
[634] Fix | Delete
'sub-site-connection-override' => $sub_site_connection_override,
[635] Fix | Delete
);
[636] Fix | Delete
[637] Fix | Delete
update_site_option( $this->settings_name, $data );
[638] Fix | Delete
wp_safe_redirect(
[639] Fix | Delete
add_query_arg(
[640] Fix | Delete
array(
[641] Fix | Delete
'page' => 'jetpack-settings',
[642] Fix | Delete
'updated' => 'true',
[643] Fix | Delete
),
[644] Fix | Delete
network_admin_url( 'admin.php' )
[645] Fix | Delete
)
[646] Fix | Delete
);
[647] Fix | Delete
exit( 0 );
[648] Fix | Delete
}
[649] Fix | Delete
[650] Fix | Delete
/**
[651] Fix | Delete
* A hook handler for adding admin pages and subpages.
[652] Fix | Delete
*/
[653] Fix | Delete
public function wrap_render_network_admin_settings_page() {
[654] Fix | Delete
Jetpack_Admin_Page::wrap_ui( array( $this, 'render_network_admin_settings_page' ) );
[655] Fix | Delete
}
[656] Fix | Delete
[657] Fix | Delete
/**
[658] Fix | Delete
* A hook rendering the admin settings page.
[659] Fix | Delete
*/
[660] Fix | Delete
public function render_network_admin_settings_page() {
[661] Fix | Delete
$this->network_admin_page_header();
[662] Fix | Delete
$options = wp_parse_args( get_site_option( $this->settings_name ), $this->setting_defaults );
[663] Fix | Delete
[664] Fix | Delete
$modules = array();
[665] Fix | Delete
$module_slugs = Jetpack::get_available_modules();
[666] Fix | Delete
foreach ( $module_slugs as $slug ) {
[667] Fix | Delete
$module = Jetpack::get_module( $slug );
[668] Fix | Delete
$module['module'] = $slug;
[669] Fix | Delete
$modules[] = $module;
[670] Fix | Delete
}
[671] Fix | Delete
[672] Fix | Delete
usort( $modules, array( 'Jetpack', 'sort_modules' ) );
[673] Fix | Delete
[674] Fix | Delete
if ( ! isset( $options['modules'] ) ) {
[675] Fix | Delete
$options['modules'] = $modules;
[676] Fix | Delete
}
[677] Fix | Delete
[678] Fix | Delete
$data = array(
[679] Fix | Delete
'modules' => $modules,
[680] Fix | Delete
'options' => $options,
[681] Fix | Delete
'jetpack_protect_whitelist' => Brute_Force_Protection_Shared_Functions::format_allow_list(),
[682] Fix | Delete
);
[683] Fix | Delete
[684] Fix | Delete
Jetpack::init()->load_view( 'admin/network-settings.php', $data );
[685] Fix | Delete
}
[686] Fix | Delete
[687] Fix | Delete
/**
[688] Fix | Delete
* Updates a site wide option
[689] Fix | Delete
*
[690] Fix | Delete
* @since 2.9
[691] Fix | Delete
*
[692] Fix | Delete
* @param string $key option name.
[693] Fix | Delete
* @param mixed $value option value.
[694] Fix | Delete
*
[695] Fix | Delete
* @return boolean
[696] Fix | Delete
**/
[697] Fix | Delete
public function update_option( $key, $value ) {
[698] Fix | Delete
$options = get_site_option( $this->settings_name, $this->setting_defaults );
[699] Fix | Delete
$options[ $key ] = $value;
[700] Fix | Delete
[701] Fix | Delete
return update_site_option( $this->settings_name, $options );
[702] Fix | Delete
}
[703] Fix | Delete
[704] Fix | Delete
/**
[705] Fix | Delete
* Retrieves a site wide option
[706] Fix | Delete
*
[707] Fix | Delete
* @since 2.9
[708] Fix | Delete
*
[709] Fix | Delete
* @param string $name - Name of the option in the database.
[710] Fix | Delete
**/
[711] Fix | Delete
public function get_option( $name ) {
[712] Fix | Delete
$options = get_site_option( $this->settings_name, $this->setting_defaults );
[713] Fix | Delete
$options = wp_parse_args( $options, $this->setting_defaults );
[714] Fix | Delete
[715] Fix | Delete
if ( ! isset( $options[ $name ] ) ) {
[716] Fix | Delete
$options[ $name ] = null;
[717] Fix | Delete
}
[718] Fix | Delete
[719] Fix | Delete
return $options[ $name ];
[720] Fix | Delete
}
[721] Fix | Delete
}
[722] Fix | Delete
[723] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function