WC_Auth::create_keys()protectedWC 2.4.0

Create keys.

Method of the class: WC_Auth{}

No Hooks.

Return

Array.

Usage

// protected - for code of main (parent) or child class
$result = $this->create_keys( $app_name, $app_user_id, $scope );
$app_name(string) (required)
App name.
$app_user_id(string) (required)
User ID.
$scope(string) (required)
Scope.

Changelog

Since 2.4.0 Introduced.

WC_Auth::create_keys() code WC 9.4.2

protected function create_keys( $app_name, $app_user_id, $scope ) {
	global $wpdb;

	$description = sprintf(
		'%s - API (%s)',
		wc_trim_string( wc_clean( $app_name ), 170 ),
		gmdate( 'Y-m-d H:i:s' )
	);
	$user        = wp_get_current_user();

	// Created API keys.
	$permissions     = in_array( $scope, array( 'read', 'write', 'read_write' ), true ) ? sanitize_text_field( $scope ) : 'read';
	$consumer_key    = 'ck_' . wc_rand_hash();
	$consumer_secret = 'cs_' . wc_rand_hash();

	$wpdb->insert(
		$wpdb->prefix . 'woocommerce_api_keys',
		array(
			'user_id'         => $user->ID,
			'description'     => $description,
			'permissions'     => $permissions,
			'consumer_key'    => wc_api_hash( $consumer_key ),
			'consumer_secret' => $consumer_secret,
			'truncated_key'   => substr( $consumer_key, -7 ),
		),
		array(
			'%d',
			'%s',
			'%s',
			'%s',
			'%s',
			'%s',
		)
	);

	return array(
		'key_id'          => $wpdb->insert_id,
		'user_id'         => $app_user_id,
		'consumer_key'    => $consumer_key,
		'consumer_secret' => $consumer_secret,
		'key_permissions' => $permissions,
	);
}