Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Admin/API
File: Plugins.php
[500] Fix | Delete
if ( defined( 'WOOCOMMERCE_CALYPSO_ENVIRONMENT' ) && in_array( WOOCOMMERCE_CALYPSO_ENVIRONMENT, array( 'development', 'wpcalypso', 'horizon', 'stage' ), true ) ) {
[501] Fix | Delete
$connect_url = add_query_arg(
[502] Fix | Delete
array(
[503] Fix | Delete
'calypso_env' => WOOCOMMERCE_CALYPSO_ENVIRONMENT,
[504] Fix | Delete
),
[505] Fix | Delete
$connect_url
[506] Fix | Delete
);
[507] Fix | Delete
}
[508] Fix | Delete
[509] Fix | Delete
return( array(
[510] Fix | Delete
'connectAction' => $connect_url,
[511] Fix | Delete
) );
[512] Fix | Delete
}
[513] Fix | Delete
[514] Fix | Delete
/**
[515] Fix | Delete
* Finishes connecting to WooCommerce.com.
[516] Fix | Delete
*
[517] Fix | Delete
* @param object $rest_request Request details.
[518] Fix | Delete
* @return \WP_Error|array Contains success status.
[519] Fix | Delete
*/
[520] Fix | Delete
public function finish_wccom_connect( $rest_request ) {
[521] Fix | Delete
include_once WC_ABSPATH . 'includes/admin/helper/class-wc-helper.php';
[522] Fix | Delete
include_once WC_ABSPATH . 'includes/admin/helper/class-wc-helper-api.php';
[523] Fix | Delete
include_once WC_ABSPATH . 'includes/admin/helper/class-wc-helper-updater.php';
[524] Fix | Delete
include_once WC_ABSPATH . 'includes/admin/helper/class-wc-helper-options.php';
[525] Fix | Delete
if ( ! class_exists( 'WC_Helper_API' ) ) {
[526] Fix | Delete
return new \WP_Error( 'woocommerce_rest_helper_not_active', __( 'There was an error loading the WooCommerce.com Helper API.', 'woocommerce' ), 404 );
[527] Fix | Delete
}
[528] Fix | Delete
[529] Fix | Delete
// Obtain an access token.
[530] Fix | Delete
$request = \WC_Helper_API::post(
[531] Fix | Delete
'oauth/access_token',
[532] Fix | Delete
array(
[533] Fix | Delete
'body' => array(
[534] Fix | Delete
'request_token' => wp_unslash( $rest_request['request_token'] ), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
[535] Fix | Delete
'home_url' => home_url(),
[536] Fix | Delete
),
[537] Fix | Delete
)
[538] Fix | Delete
);
[539] Fix | Delete
[540] Fix | Delete
$code = wp_remote_retrieve_response_code( $request );
[541] Fix | Delete
if ( 200 !== $code ) {
[542] Fix | Delete
return new \WP_Error( 'woocommerce_rest_helper_connect', __( 'There was an error connecting to WooCommerce.com. Please try again.', 'woocommerce' ), 500 );
[543] Fix | Delete
}
[544] Fix | Delete
[545] Fix | Delete
$access_token = json_decode( wp_remote_retrieve_body( $request ), true );
[546] Fix | Delete
if ( ! $access_token ) {
[547] Fix | Delete
return new \WP_Error( 'woocommerce_rest_helper_connect', __( 'There was an error connecting to WooCommerce.com. Please try again.', 'woocommerce' ), 500 );
[548] Fix | Delete
}
[549] Fix | Delete
[550] Fix | Delete
\WC_Helper_Options::update(
[551] Fix | Delete
'auth',
[552] Fix | Delete
array(
[553] Fix | Delete
'access_token' => $access_token['access_token'],
[554] Fix | Delete
'access_token_secret' => $access_token['access_token_secret'],
[555] Fix | Delete
'site_id' => $access_token['site_id'],
[556] Fix | Delete
'user_id' => get_current_user_id(),
[557] Fix | Delete
'updated' => time(),
[558] Fix | Delete
)
[559] Fix | Delete
);
[560] Fix | Delete
[561] Fix | Delete
if ( ! \WC_Helper::_flush_authentication_cache() ) {
[562] Fix | Delete
\WC_Helper_Options::update( 'auth', array() );
[563] Fix | Delete
return new \WP_Error( 'woocommerce_rest_helper_connect', __( 'There was an error connecting to WooCommerce.com. Please try again.', 'woocommerce' ), 500 );
[564] Fix | Delete
}
[565] Fix | Delete
[566] Fix | Delete
delete_transient( '_woocommerce_helper_subscriptions' );
[567] Fix | Delete
\WC_Helper_Updater::flush_updates_cache();
[568] Fix | Delete
[569] Fix | Delete
do_action( 'woocommerce_helper_connected' );
[570] Fix | Delete
[571] Fix | Delete
return array(
[572] Fix | Delete
'success' => true,
[573] Fix | Delete
);
[574] Fix | Delete
}
[575] Fix | Delete
[576] Fix | Delete
[577] Fix | Delete
/**
[578] Fix | Delete
* Returns a URL that can be used to connect to Square.
[579] Fix | Delete
*
[580] Fix | Delete
* @return \WP_Error|array Connect URL.
[581] Fix | Delete
*/
[582] Fix | Delete
public function connect_square() {
[583] Fix | Delete
if ( ! class_exists( '\WooCommerce\Square\Handlers\Connection' ) ) {
[584] Fix | Delete
return new \WP_Error( 'woocommerce_rest_helper_connect', __( 'There was an error connecting to Square.', 'woocommerce' ), 500 );
[585] Fix | Delete
}
[586] Fix | Delete
$has_cbd_industry = false;
[587] Fix | Delete
if ( 'US' === WC()->countries->get_base_country() ) {
[588] Fix | Delete
$profile = get_option( OnboardingProfile::DATA_OPTION, array() );
[589] Fix | Delete
if ( ! empty( $profile['industry'] ) ) {
[590] Fix | Delete
$has_cbd_industry = in_array( 'cbd-other-hemp-derived-products', array_column( $profile['industry'], 'slug' ), true );
[591] Fix | Delete
}
[592] Fix | Delete
}
[593] Fix | Delete
[594] Fix | Delete
if ( $has_cbd_industry ) {
[595] Fix | Delete
$url = 'https://squareup.com/t/f_partnerships/d_referrals/p_woocommerce/c_general/o_none/l_us/dt_alldevice/pr_payments/?route=/solutions/cbd';
[596] Fix | Delete
} else {
[597] Fix | Delete
$url = \WooCommerce\Square\Handlers\Connection::CONNECT_URL_PRODUCTION;
[598] Fix | Delete
}
[599] Fix | Delete
[600] Fix | Delete
$redirect_url = wp_nonce_url( wc_admin_url( '&task=payments&method=square&square-connect-finish=1' ), 'wc_square_connected' );
[601] Fix | Delete
$args = array(
[602] Fix | Delete
'redirect' => rawurlencode( rawurlencode( $redirect_url ) ),
[603] Fix | Delete
'scopes' => implode(
[604] Fix | Delete
',',
[605] Fix | Delete
array(
[606] Fix | Delete
'MERCHANT_PROFILE_READ',
[607] Fix | Delete
'PAYMENTS_READ',
[608] Fix | Delete
'PAYMENTS_WRITE',
[609] Fix | Delete
'ORDERS_READ',
[610] Fix | Delete
'ORDERS_WRITE',
[611] Fix | Delete
'CUSTOMERS_READ',
[612] Fix | Delete
'CUSTOMERS_WRITE',
[613] Fix | Delete
'SETTLEMENTS_READ',
[614] Fix | Delete
'ITEMS_READ',
[615] Fix | Delete
'ITEMS_WRITE',
[616] Fix | Delete
'INVENTORY_READ',
[617] Fix | Delete
'INVENTORY_WRITE',
[618] Fix | Delete
)
[619] Fix | Delete
),
[620] Fix | Delete
);
[621] Fix | Delete
[622] Fix | Delete
$connect_url = add_query_arg( $args, $url );
[623] Fix | Delete
[624] Fix | Delete
return( array(
[625] Fix | Delete
'connectUrl' => $connect_url,
[626] Fix | Delete
) );
[627] Fix | Delete
}
[628] Fix | Delete
[629] Fix | Delete
/**
[630] Fix | Delete
* Returns a URL that can be used to point the merchant to the WooPayments onboarding flow.
[631] Fix | Delete
*
[632] Fix | Delete
* @return \WP_Error|array Connect URL.
[633] Fix | Delete
*/
[634] Fix | Delete
public function connect_wcpay() {
[635] Fix | Delete
if ( ! class_exists( 'WC_Payments' ) ) {
[636] Fix | Delete
return new \WP_Error( 'woocommerce_rest_helper_connect', __( 'There was an error communicating with the WooPayments plugin.', 'woocommerce' ), 500 );
[637] Fix | Delete
}
[638] Fix | Delete
[639] Fix | Delete
// Use a WooPayments connect link to let the WooPayments plugin handle the connection flow.
[640] Fix | Delete
return array(
[641] Fix | Delete
'connectUrl' => add_query_arg(
[642] Fix | Delete
array(
[643] Fix | Delete
'wcpay-connect' => '1',
[644] Fix | Delete
'from' => 'WCADMIN_PAYMENT_TASK',
[645] Fix | Delete
'_wpnonce' => wp_create_nonce( 'wcpay-connect' ),
[646] Fix | Delete
),
[647] Fix | Delete
admin_url( 'admin.php' )
[648] Fix | Delete
),
[649] Fix | Delete
);
[650] Fix | Delete
}
[651] Fix | Delete
[652] Fix | Delete
/**
[653] Fix | Delete
* Get the schema, conforming to JSON Schema.
[654] Fix | Delete
*
[655] Fix | Delete
* @return array
[656] Fix | Delete
*/
[657] Fix | Delete
public function get_item_schema() {
[658] Fix | Delete
$schema = array(
[659] Fix | Delete
'$schema' => 'http://json-schema.org/draft-04/schema#',
[660] Fix | Delete
'title' => 'plugins',
[661] Fix | Delete
'type' => 'object',
[662] Fix | Delete
'properties' => array(
[663] Fix | Delete
'slug' => array(
[664] Fix | Delete
'description' => __( 'Plugin slug.', 'woocommerce' ),
[665] Fix | Delete
'type' => 'string',
[666] Fix | Delete
'context' => array( 'view', 'edit' ),
[667] Fix | Delete
'readonly' => true,
[668] Fix | Delete
),
[669] Fix | Delete
'name' => array(
[670] Fix | Delete
'description' => __( 'Plugin name.', 'woocommerce' ),
[671] Fix | Delete
'type' => 'string',
[672] Fix | Delete
'context' => array( 'view', 'edit' ),
[673] Fix | Delete
'readonly' => true,
[674] Fix | Delete
),
[675] Fix | Delete
'status' => array(
[676] Fix | Delete
'description' => __( 'Plugin status.', 'woocommerce' ),
[677] Fix | Delete
'type' => 'string',
[678] Fix | Delete
'context' => array( 'view', 'edit' ),
[679] Fix | Delete
'readonly' => true,
[680] Fix | Delete
),
[681] Fix | Delete
),
[682] Fix | Delete
);
[683] Fix | Delete
[684] Fix | Delete
return $this->add_additional_fields_schema( $schema );
[685] Fix | Delete
}
[686] Fix | Delete
[687] Fix | Delete
/**
[688] Fix | Delete
* Get the schema, conforming to JSON Schema.
[689] Fix | Delete
*
[690] Fix | Delete
* @return array
[691] Fix | Delete
*/
[692] Fix | Delete
public function get_connect_schema() {
[693] Fix | Delete
$schema = $this->get_item_schema();
[694] Fix | Delete
unset( $schema['properties']['status'] );
[695] Fix | Delete
$schema['properties']['connectAction'] = array(
[696] Fix | Delete
'description' => __( 'Action that should be completed to connect Jetpack.', 'woocommerce' ),
[697] Fix | Delete
'type' => 'string',
[698] Fix | Delete
'context' => array( 'view', 'edit' ),
[699] Fix | Delete
'readonly' => true,
[700] Fix | Delete
);
[701] Fix | Delete
return $schema;
[702] Fix | Delete
}
[703] Fix | Delete
}
[704] Fix | Delete
[705] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function