WC_Helper::_helper_auth_return() private WC 1.0
Return from WooCommerce.com OAuth flow.
{} Это метод класса: WC_Helper{}
Хуки из метода
Возвращает
Null. Ничего.
Использование
$result = WC_Helper::_helper_auth_return();
Код WC_Helper::_helper_auth_return() WC Helper:: helper auth return WC 5.0.0
private static function _helper_auth_return() {
if ( empty( $_GET['wc-helper-nonce'] ) || ! wp_verify_nonce( wp_unslash( $_GET['wc-helper-nonce'] ), 'connect' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
self::log( 'Could not verify nonce in _helper_auth_return' );
wp_die( 'Something went wrong' );
}
// Bail if the user clicked deny.
if ( ! empty( $_GET['deny'] ) ) {
/**
* Fires when the Helper connection process is denied/cancelled.
*/
do_action( 'woocommerce_helper_denied' );
wp_safe_redirect( admin_url( 'admin.php?page=wc-addons§ion=helper' ) );
die();
}
// We do need a request token...
if ( empty( $_GET['request_token'] ) ) {
self::log( 'Request token not found in _helper_auth_return' );
wp_die( 'Something went wrong' );
}
// Obtain an access token.
$request = WC_Helper_API::post(
'oauth/access_token',
array(
'body' => array(
'request_token' => wp_unslash( $_GET['request_token'] ), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
'home_url' => home_url(),
),
)
);
$code = wp_remote_retrieve_response_code( $request );
if ( 200 !== $code ) {
self::log( sprintf( 'Call to oauth/access_token returned a non-200 response code (%d)', $code ) );
wp_die( 'Something went wrong' );
}
$access_token = json_decode( wp_remote_retrieve_body( $request ), true );
if ( ! $access_token ) {
self::log( sprintf( 'Call to oauth/access_token returned an invalid body: %s', wp_remote_retrieve_body( $request ) ) );
wp_die( 'Something went wrong' );
}
WC_Helper_Options::update(
'auth',
array(
'access_token' => $access_token['access_token'],
'access_token_secret' => $access_token['access_token_secret'],
'site_id' => $access_token['site_id'],
'user_id' => get_current_user_id(),
'updated' => time(),
)
);
// Obtain the connected user info.
if ( ! self::_flush_authentication_cache() ) {
self::log( 'Could not obtain connected user info in _helper_auth_return' );
WC_Helper_Options::update( 'auth', array() );
wp_die( 'Something went wrong.' );
}
self::_flush_subscriptions_cache();
self::_flush_updates_cache();
/**
* Fires when the Helper connection process has completed successfully.
*/
do_action( 'woocommerce_helper_connected' );
// Enable tracking when connected.
if ( class_exists( 'WC_Tracker' ) ) {
update_option( 'woocommerce_allow_tracking', 'yes' );
WC_Tracker::send_tracking_data( true );
}
// If connecting through in-app purchase, redirects back to WooCommerce.com
// for product installation.
if ( ! empty( $_GET['wccom-install-url'] ) ) {
wp_redirect( wp_unslash( $_GET['wccom-install-url'] ) );
exit;
}
wp_safe_redirect(
add_query_arg(
array(
'page' => 'wc-addons',
'section' => 'helper',
'wc-helper-status' => 'helper-connected',
),
admin_url( 'admin.php' )
)
);
die();
}