WC_Helper::_helper_auth_connect()private staticWC 1.0

Initiate a new OAuth connection.

Метод класса: WC_Helper{}

Хуки из метода

Возвращает

null. Ничего (null).

Использование

$result = WC_Helper::_helper_auth_connect();

Код WC_Helper::_helper_auth_connect() WC 8.7.0

private static function _helper_auth_connect() {
	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_connect' );
		wp_die( 'Could not verify nonce' );
	}

	$redirect_url_args = array(
		'page'             => 'wc-addons',
		'section'          => 'helper',
		'wc-helper-return' => 1,
		'wc-helper-nonce'  => wp_create_nonce( 'connect' ),
	);

	if ( isset( $_GET['install'] ) ) {
		$redirect_url_args['install'] = sanitize_text_field( wp_unslash( $_GET['install'] ) );
	}

	$redirect_uri = add_query_arg(
		$redirect_url_args,
		admin_url( 'admin.php' )
	);

	$request = WC_Helper_API::post(
		'oauth/request_token',
		array(
			'body' => array(
				'home_url'     => home_url(),
				'redirect_uri' => $redirect_uri,
			),
		)
	);

	$code = wp_remote_retrieve_response_code( $request );

	if ( 200 !== $code ) {
		self::log( sprintf( 'Call to oauth/request_token returned a non-200 response code (%d)', $code ) );
		wp_die( 'Something went wrong' );
	}

	$secret = json_decode( wp_remote_retrieve_body( $request ) );
	if ( empty( $secret ) ) {
		self::log( sprintf( 'Call to oauth/request_token returned an invalid body: %s', wp_remote_retrieve_body( $request ) ) );
		wp_die( 'Something went wrong' );
	}

	/**
	 * Fires when the Helper connection process is initiated.
	 */
	do_action( 'woocommerce_helper_connect_start' );

	$connect_url = add_query_arg(
		array(
			'home_url'           => rawurlencode( home_url() ),
			'redirect_uri'       => rawurlencode( $redirect_uri ),
			'secret'             => rawurlencode( $secret ),
			'redirect_admin_url' => isset( $_GET['redirect_admin_url'] )
				? rawurlencode(
					esc_url_raw(
						urldecode(
							// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
							wp_unslash( $_GET['redirect_admin_url'] )
						)
					)
				)
				: '',
		),
		WC_Helper_API::url( 'oauth/authorize' )
	);

	wp_redirect( esc_url_raw( $connect_url ) );
	die();
}