Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Internal/Jetpack
File: JetpackConnection.php
<?php
[0] Fix | Delete
declare( strict_types=1 );
[1] Fix | Delete
[2] Fix | Delete
namespace Automattic\WooCommerce\Internal\Jetpack;
[3] Fix | Delete
[4] Fix | Delete
use Automattic\Jetpack\Connection\Manager;
[5] Fix | Delete
use Automattic\WooCommerce\Admin\Features\Features;
[6] Fix | Delete
use WP_Error;
[7] Fix | Delete
[8] Fix | Delete
/**
[9] Fix | Delete
* Jetpack Connection wrapper class.
[10] Fix | Delete
*
[11] Fix | Delete
* @since 8.3.0
[12] Fix | Delete
*/
[13] Fix | Delete
class JetpackConnection {
[14] Fix | Delete
/**
[15] Fix | Delete
* Jetpack connection manager.
[16] Fix | Delete
*
[17] Fix | Delete
* @var Manager
[18] Fix | Delete
*/
[19] Fix | Delete
private static $manager;
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* Get the Jetpack connection manager.
[23] Fix | Delete
*
[24] Fix | Delete
* @return Manager
[25] Fix | Delete
*/
[26] Fix | Delete
public static function get_manager() {
[27] Fix | Delete
if ( ! self::$manager instanceof Manager ) {
[28] Fix | Delete
self::$manager = new Manager( 'woocommerce' );
[29] Fix | Delete
}
[30] Fix | Delete
[31] Fix | Delete
return self::$manager;
[32] Fix | Delete
}
[33] Fix | Delete
[34] Fix | Delete
/**
[35] Fix | Delete
* Get the authorization URL for the Jetpack connection.
[36] Fix | Delete
*
[37] Fix | Delete
* @param mixed $redirect_url Redirect URL.
[38] Fix | Delete
* @param string $from From parameter.
[39] Fix | Delete
*
[40] Fix | Delete
* @return array {
[41] Fix | Delete
* Authorization data.
[42] Fix | Delete
*
[43] Fix | Delete
* @type bool $success Whether authorization URL generation succeeded.
[44] Fix | Delete
* @type array $errors Array of error messages if any.
[45] Fix | Delete
* @type string $color_scheme User's admin color scheme.
[46] Fix | Delete
* @type string $url The authorization URL.
[47] Fix | Delete
* }
[48] Fix | Delete
*/
[49] Fix | Delete
public static function get_authorization_url( $redirect_url, $from = '' ) {
[50] Fix | Delete
$manager = self::get_manager();
[51] Fix | Delete
$errors = new WP_Error();
[52] Fix | Delete
[53] Fix | Delete
// Register the site to wp.com.
[54] Fix | Delete
if ( ! $manager->is_connected() ) {
[55] Fix | Delete
$result = $manager->try_registration();
[56] Fix | Delete
if ( is_wp_error( $result ) ) {
[57] Fix | Delete
$errors->add( $result->get_error_code(), $result->get_error_message() );
[58] Fix | Delete
}
[59] Fix | Delete
}
[60] Fix | Delete
[61] Fix | Delete
$calypso_env = defined( 'WOOCOMMERCE_CALYPSO_ENVIRONMENT' ) && in_array( WOOCOMMERCE_CALYPSO_ENVIRONMENT, array( 'development', 'wpcalypso', 'horizon', 'stage' ), true ) ? WOOCOMMERCE_CALYPSO_ENVIRONMENT : 'production';
[62] Fix | Delete
[63] Fix | Delete
$authorization_url = $manager->get_authorization_url( null, $redirect_url );
[64] Fix | Delete
$authorization_url = add_query_arg( 'locale', self::get_wpcom_locale(), $authorization_url );
[65] Fix | Delete
[66] Fix | Delete
if ( Features::is_enabled( 'use-wp-horizon' ) ) {
[67] Fix | Delete
$calypso_env = 'horizon';
[68] Fix | Delete
}
[69] Fix | Delete
[70] Fix | Delete
$color_scheme = get_user_option( 'admin_color', get_current_user_id() );
[71] Fix | Delete
if ( ! $color_scheme ) {
[72] Fix | Delete
// The default Core color schema is 'fresh'.
[73] Fix | Delete
$color_scheme = 'fresh';
[74] Fix | Delete
}
[75] Fix | Delete
[76] Fix | Delete
return array(
[77] Fix | Delete
'success' => ! $errors->has_errors(),
[78] Fix | Delete
'errors' => $errors->get_error_messages(),
[79] Fix | Delete
'color_scheme' => $color_scheme,
[80] Fix | Delete
'url' => add_query_arg(
[81] Fix | Delete
array(
[82] Fix | Delete
'from' => $from,
[83] Fix | Delete
'calypso_env' => $calypso_env,
[84] Fix | Delete
),
[85] Fix | Delete
$authorization_url,
[86] Fix | Delete
),
[87] Fix | Delete
);
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
/**
[91] Fix | Delete
* Return a locale string for wpcom.
[92] Fix | Delete
*
[93] Fix | Delete
* @return string
[94] Fix | Delete
*/
[95] Fix | Delete
private static function get_wpcom_locale() {
[96] Fix | Delete
// List of locales that should be used with region code.
[97] Fix | Delete
$locale_to_lang = array(
[98] Fix | Delete
'bre' => 'br',
[99] Fix | Delete
'de_AT' => 'de-at',
[100] Fix | Delete
'de_CH' => 'de-ch',
[101] Fix | Delete
'de' => 'de_formal',
[102] Fix | Delete
'el' => 'el-po',
[103] Fix | Delete
'en_GB' => 'en-gb',
[104] Fix | Delete
'es_CL' => 'es-cl',
[105] Fix | Delete
'es_MX' => 'es-mx',
[106] Fix | Delete
'fr_BE' => 'fr-be',
[107] Fix | Delete
'fr_CA' => 'fr-ca',
[108] Fix | Delete
'nl_BE' => 'nl-be',
[109] Fix | Delete
'nl' => 'nl_formal',
[110] Fix | Delete
'pt_BR' => 'pt-br',
[111] Fix | Delete
'sr' => 'sr_latin',
[112] Fix | Delete
'zh_CN' => 'zh-cn',
[113] Fix | Delete
'zh_HK' => 'zh-hk',
[114] Fix | Delete
'zh_SG' => 'zh-sg',
[115] Fix | Delete
'zh_TW' => 'zh-tw',
[116] Fix | Delete
);
[117] Fix | Delete
[118] Fix | Delete
$system_locale = get_locale();
[119] Fix | Delete
if ( isset( $locale_to_lang[ $system_locale ] ) ) {
[120] Fix | Delete
// Return the locale with region code if it's in the list.
[121] Fix | Delete
return $locale_to_lang[ $system_locale ];
[122] Fix | Delete
}
[123] Fix | Delete
[124] Fix | Delete
// If the locale is not in the list, return the language code only.
[125] Fix | Delete
return explode( '_', $system_locale )[0];
[126] Fix | Delete
}
[127] Fix | Delete
}
[128] Fix | Delete
[129] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function