Automattic\WooCommerce\Admin\Features

LaunchYourStore::preload_settings()publicWC 1.0

Preload settings for Site Visibility.

Method of the class: LaunchYourStore{}

No Hooks.

Return

Mixed.

Usage

$LaunchYourStore = new LaunchYourStore();
$LaunchYourStore->preload_settings( $settings );
$settings(array) (required)
settings array.

LaunchYourStore::preload_settings() code WC 9.0.1

public function preload_settings( $settings ) {
	if ( ! is_admin() ) {
		return $settings;
	}

	$current_screen  = get_current_screen();
	$is_setting_page = $current_screen && 'woocommerce_page_wc-settings' === $current_screen->id;

	// phpcs:disable WordPress.Security.NonceVerification.Recommended
	$is_woopayments_connect = isset( $_GET['path'] ) &&
							isset( $_GET['page'] ) &&
							( '/payments/connect' === sanitize_text_field( wp_unslash( $_GET['path'] ) ) || '/payments/onboarding' === sanitize_text_field( wp_unslash( $_GET['path'] ) ) ) &&
							'wc-admin' === $_GET['page'];
	// phpcs:enable

	if ( $is_setting_page || $is_woopayments_connect ) {
		// Regnerate the share key if it's not set.
		add_option( 'woocommerce_share_key', wp_generate_password( 32, false ) );

		$settings['siteVisibilitySettings'] = array(
			'shop_permalink'               => get_permalink( wc_get_page_id( 'shop' ) ),
			'woocommerce_coming_soon'      => get_option( 'woocommerce_coming_soon' ),
			'woocommerce_store_pages_only' => get_option( 'woocommerce_store_pages_only' ),
			'woocommerce_private_link'     => get_option( 'woocommerce_private_link' ),
			'woocommerce_share_key'        => get_option( 'woocommerce_share_key' ),
		);
	}

	return $settings;
}