Automattic\WooCommerce\Internal\MCP\Transport

WooCommerceRestTransport::check_ability_permissionpublicWC 1.0

Check REST ability permissions for HTTP method.

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

Хуков нет.

Возвращает

true|false. Whether permission is granted.

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

$WooCommerceRestTransport = new WooCommerceRestTransport();
$WooCommerceRestTransport->check_ability_permission( $allowed, $method, $controller );
$allowed(true|false) (обязательный)
Whether the operation is allowed.
По умолчанию: false
$method(строка) (обязательный)
HTTP method (GET, POST, PUT, DELETE).
$controller(объект) (обязательный)
REST controller instance.

Код WooCommerceRestTransport::check_ability_permission() WC 10.3.4

public function check_ability_permission( $allowed, $method, $controller ) {
	// Only check permissions if we have MCP context.
	$permissions = self::get_current_user_permissions();
	if ( null === $permissions ) {
		return $allowed;
	}

	// Check permissions based on method.
	switch ( $method ) {
		case 'HEAD':
		case 'GET':
			return ( 'read' === $permissions || 'read_write' === $permissions );
		case 'POST':
		case 'PUT':
		case 'PATCH':
		case 'DELETE':
			return ( 'write' === $permissions || 'read_write' === $permissions );
		case 'OPTIONS':
			return true;
		default:
			return false;
	}
}