en utilisant Kadence Lorsque Pattern Hub est utilisé, vous pouvez générer des clés d'accès à la bibliothèque de dessins et modèles et permettre à d'autres personnes d'y accéder. Si vous avez l'intention d'accéder à la bibliothèque via le WooCommerce La vente de ces clés d'accès nécessite l'utilisation d'outils plus puissants pour générer et gérer les clés. Le plugin WooCommerce Software License Plugin et le plugin License Manager for WooCommerce sont des solutions idéales. Dans cet article, nous allons présenter ce plugindeuxLa configuration de base du plug-in et la façon dont il s'intègre à Kadence Pattern Hub pour les ventes de clés d'accès.
![Image [1]-Guide complet pour la vente de clés d'accès au Hub Kadence Pattern dans WooCommerce](https://www.361sale.com/wp-content/uploads/2025/04/20250403164238406-image.png)
Étape 1 : Créer un produit d'accès au Hub Pattern
Premièrement, en WooCommerce Créez un nouveau produit qui servira à vendre des clés d'accès. Configurez le produit comme un produit virtuel sans utiliser le processus d'expédition.
- Créer des produits virtuels
entrer dans WordPress Backend, sélectionnez WooCommerce -> Produits -> Ajouter un nouveau produitet mis en place en tant que produit virtuel.
![Image [2]-Guide complet pour la vente de clés d'accès au hub de Kadence Pattern dans WooCommerce](https://www.361sale.com/wp-content/uploads/2025/04/20250403164456342-image.png)
- Licence de configuration
En fonction du plug-in utilisé (WooCommerce Software License ou License Manager for WooCommerce), configurez la licence du produit et associez-la au générateur de clés d'accès.
![Image [3]-Guide complet pour la vente de clés d'accès au hub de Kadence Pattern dans WooCommerce](https://www.361sale.com/wp-content/uploads/2025/04/20250403164521401-image.png)
![Image [4]-Guide complet pour la vente de clés d'accès au hub de Kadence Pattern dans WooCommerce](https://www.361sale.com/wp-content/uploads/2025/04/20250403164543973-image.png)
Étape 2 : Connecter le Kadence Pattern Hub à la validation de la licence
existent WooCommerce Après avoir vendu des clés d'accès dans le Kadence Pattern Hub, vous devez vous assurer que le Kadence Pattern Hub peut vérifier la validité de la licence. Pour ce faire, vous devez ajouter un fichier PHP Filtre.
Filtre de licence de logiciel WooCommerce: :
L'extrait suivant vérifiera si la licence est valide et activée pour le domaine demandé au moment de la demande. Si la clé est valide et activée, l'accès est renvoyé comme étant autorisé.
/*** Validates license with WooCommerce Software License.** @param Boolean $access true or false based on access.* @param String $key the access key.* @param WP_REST_Request $request full details about the request.* @return Boolean based on if access should be granted.*/function custom_check_cloud_access( $access, $key, $request ) {// If true the key matches with settings in Kadence Pattern Hub. Let that pass for testing purposes.if ( $access ) {return $access;}// Make sure WooCommerce Software License exists.global $WOO_SL_API;if ( $WOO_SL_API ) {$site = preg_replace('(^https?://)', '', $request->get_param( 'site' ) );$args = array('licence_key' => $key,'domain' => $site,'woo_sl_action' => 'status-check','product_unique_id' => 'PRODUCT_UNIQUE_ID',);$response = $WOO_SL_API->API_call( $args );$response = json_decode( $response );end( $response );$response_data = current( $response );if ( is_object( $response_data ) && 'success' === $response_data->status ) {// Lets activate it for this domain if it's not.if ( $response_data->status_code && 's203' === $response_data->status_code ) {$args['woo_sl_action'] = 'activate';$response = $WOO_SL_API->API_call( $args );}return true;} else if ( is_object( $response_data ) && 'error' === $response_data->status ) {// Lets activate it for this domain if possible.if ( $response_data->status_code && 'e204' === $response_data->status_code ) {$args['woo_sl_action'] = 'activate';$response = $WOO_SL_API->API_call( $args );$response = json_decode( $response );end( $response );$response_data = current( $response );if ( is_object( $response_data ) && 'success' === $response_data->status ) {return true;} else {return false;}} else {return false;}} else {return false;}}return $access;}add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );/** * Validates license with WooCommerce Software License. * * @param Boolean $access true or false based on access. * @param String $key the access key. * @param WP_REST_Request $request full details about the request. * @return Boolean based on if access should be granted. */ function custom_check_cloud_access( $access, $key, $request ) { // If true the key matches with settings in Kadence Pattern Hub. Let that pass for testing purposes. if ( $access ) { return $access; } // Make sure WooCommerce Software License exists. global $WOO_SL_API; if ( $WOO_SL_API ) { $site = preg_replace('(^https?://)', '', $request->get_param( 'site' ) ); $args = array( 'licence_key' => $key, 'domain' => $site, 'woo_sl_action' => 'status-check', 'product_unique_id' => 'PRODUCT_UNIQUE_ID', ); $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { // Lets activate it for this domain if it's not. if ( $response_data->status_code && 's203' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); } return true; } else if ( is_object( $response_data ) && 'error' === $response_data->status ) { // Lets activate it for this domain if possible. if ( $response_data->status_code && 'e204' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { return true; } else { return false; } } else { return false; } } else { return false; } } return $access; } add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );/** * Validates license with WooCommerce Software License. * * @param Boolean $access true or false based on access. * @param String $key the access key. * @param WP_REST_Request $request full details about the request. * @return Boolean based on if access should be granted. */ function custom_check_cloud_access( $access, $key, $request ) { // If true the key matches with settings in Kadence Pattern Hub. Let that pass for testing purposes. if ( $access ) { return $access; } // Make sure WooCommerce Software License exists. global $WOO_SL_API; if ( $WOO_SL_API ) { $site = preg_replace('(^https?://)', '', $request->get_param( 'site' ) ); $args = array( 'licence_key' => $key, 'domain' => $site, 'woo_sl_action' => 'status-check', 'product_unique_id' => 'PRODUCT_UNIQUE_ID', ); $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { // Lets activate it for this domain if it's not. if ( $response_data->status_code && 's203' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); } return true; } else if ( is_object( $response_data ) && 'error' === $response_data->status ) { // Lets activate it for this domain if possible. if ( $response_data->status_code && 'e204' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { return true; } else { return false; } } else { return false; } } else { return false; } } return $access; } add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );
Restreindre l'accès à des collections spécifiques de la bibliothèque de modèles
Si vous souhaitez limiter l'accès d'une clé d'accès à une collection spécifique de bibliothèques de schémas, vous pouvez le faire avec le code suivant :
/*** L'accès à une collection spécifique de bibliothèques de modèles est défini./** * Définir l'accès à une collection spécifique de bibliothèques de modèles.* @param array $args the query args for retrieving items * @param string $key the access key.* @param string $key la clé d'accès.* @param array $request_extras les arguments supplémentaires pour la requête * @return array with updated query args.* @return array with updated query args.*/function custom_kadence_cloud_query_args( $args, $key, $request_extras ) {if ( ! isset( $args['tax_query']) ) {$args['tax_query'] = array(array('taxonomy' => 'kadence-cloud-collections','field' => 'slug','terms' => array('COLLECTION_SLUG')),) ;}return $args.}add_filter('kadence_cloud_template_query_args', 'custom_kadence_cloud_query_args', 10, 3 ) ;/** * L'accès à une collection spécifique de bibliothèques de modèles est défini. /** * Définir l'accès à une collection spécifique de bibliothèques de modèles. * @param array $args the query args for retrieving items * @param string $key the access key. * @param string $key la clé d'accès. * @param array $request_extras les arguments supplémentaires pour la requête * @return array with updated query args. * @return array with updated query args. */ function custom_kadence_cloud_query_args( $args, $key, $request_extras ) { if ( ! isset( $args['tax_query']) ) { $args['tax_query'] = array( array( 'taxonomy' => 'kadence-cloud-collections', 'field' => 'slug', 'terms' => array('COLLECTION_SLUG') ), ) ; } return $args. } add_filter('kadence_cloud_template_query_args', 'custom_kadence_cloud_query_args', 10, 3 ) ;/** * L'accès à une collection spécifique de bibliothèques de modèles est défini. /** * Définir l'accès à une collection spécifique de bibliothèques de modèles. * @param array $args the query args for retrieving items * @param string $key the access key. * @param string $key la clé d'accès. * @param array $request_extras les arguments supplémentaires pour la requête * @return array with updated query args. * @return array with updated query args. */ function custom_kadence_cloud_query_args( $args, $key, $request_extras ) { if ( ! isset( $args['tax_query']) ) { $args['tax_query'] = array( array( 'taxonomy' => 'kadence-cloud-collections', 'field' => 'slug', 'terms' => array('COLLECTION_SLUG') ), ) ; } return $args. } add_filter('kadence_cloud_template_query_args', 'custom_kadence_cloud_query_args', 10, 3 ) ;
Vente de clés d'accès pour plusieurs collections
Si vous avez plusieurs collections de schémas à vendre, vous pouvez le faire en définissant un préfixe de licence différent pour chaque collection :
/*** Validates license with WooCommerce Software License.** @param Boolean $access true or false based on access.* @param String $key the access key.* @param WP_REST_Request $request full details about the request.* @return Boolean based on if access should be granted.*/function custom_check_cloud_access( $access, $key, $request ) {// If true the key matches with settings in Kadence Pattern Hub. Let that pass for testing purposes.if ( $access ) {return $access;}// Make sure WooCommerce Software License exists.global $WOO_SL_API;if ( $WOO_SL_API ) {if ( substr( $key, 0, strlen( 'col_one' ) ) === 'col_one' ) {$product_id = 'PRODUCT_UNIQUE_ID';} else {$product_id = 'PRODUCT_UNIQUE_ID_TWO';}$site = preg_replace('(^https?://)', '', $request->get_param( 'site' ) );$args = array('licence_key' => $key,'domain' => $site,'woo_sl_action' => 'status-check','product_unique_id' => $product_id,);$response = $WOO_SL_API->API_call( $args );$response = json_decode( $response );end( $response );$response_data = current( $response );if ( is_object( $response_data ) && 'success' === $response_data->status ) {// Lets activate it for this domain if it's not.if ( $response_data->status_code && 's203' === $response_data->status_code ) {$args['woo_sl_action'] = 'activate';$response = $WOO_SL_API->API_call( $args );}return true;} else if ( is_object( $response_data ) && 'error' === $response_data->status ) {// Lets activate it for this domain if possible.if ( $response_data->status_code && 'e204' === $response_data->status_code ) {$args['woo_sl_action'] = 'activate';$response = $WOO_SL_API->API_call( $args );$response = json_decode( $response );end( $response );$response_data = current( $response );if ( is_object( $response_data ) && 'success' === $response_data->status ) {return true;} else {return false;}} else {return false;}} else {return false;}}return $access;}add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );/** * Validates license with WooCommerce Software License. * * @param Boolean $access true or false based on access. * @param String $key the access key. * @param WP_REST_Request $request full details about the request. * @return Boolean based on if access should be granted. */ function custom_check_cloud_access( $access, $key, $request ) { // If true the key matches with settings in Kadence Pattern Hub. Let that pass for testing purposes. if ( $access ) { return $access; } // Make sure WooCommerce Software License exists. global $WOO_SL_API; if ( $WOO_SL_API ) { if ( substr( $key, 0, strlen( 'col_one' ) ) === 'col_one' ) { $product_id = 'PRODUCT_UNIQUE_ID'; } else { $product_id = 'PRODUCT_UNIQUE_ID_TWO'; } $site = preg_replace('(^https?://)', '', $request->get_param( 'site' ) ); $args = array( 'licence_key' => $key, 'domain' => $site, 'woo_sl_action' => 'status-check', 'product_unique_id' => $product_id, ); $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { // Lets activate it for this domain if it's not. if ( $response_data->status_code && 's203' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); } return true; } else if ( is_object( $response_data ) && 'error' === $response_data->status ) { // Lets activate it for this domain if possible. if ( $response_data->status_code && 'e204' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { return true; } else { return false; } } else { return false; } } else { return false; } } return $access; } add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );/** * Validates license with WooCommerce Software License. * * @param Boolean $access true or false based on access. * @param String $key the access key. * @param WP_REST_Request $request full details about the request. * @return Boolean based on if access should be granted. */ function custom_check_cloud_access( $access, $key, $request ) { // If true the key matches with settings in Kadence Pattern Hub. Let that pass for testing purposes. if ( $access ) { return $access; } // Make sure WooCommerce Software License exists. global $WOO_SL_API; if ( $WOO_SL_API ) { if ( substr( $key, 0, strlen( 'col_one' ) ) === 'col_one' ) { $product_id = 'PRODUCT_UNIQUE_ID'; } else { $product_id = 'PRODUCT_UNIQUE_ID_TWO'; } $site = preg_replace('(^https?://)', '', $request->get_param( 'site' ) ); $args = array( 'licence_key' => $key, 'domain' => $site, 'woo_sl_action' => 'status-check', 'product_unique_id' => $product_id, ); $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { // Lets activate it for this domain if it's not. if ( $response_data->status_code && 's203' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); } return true; } else if ( is_object( $response_data ) && 'error' === $response_data->status ) { // Lets activate it for this domain if possible. if ( $response_data->status_code && 'e204' === $response_data->status_code ) { $args['woo_sl_action'] = 'activate'; $response = $WOO_SL_API->API_call( $args ); $response = json_decode( $response ); end( $response ); $response_data = current( $response ); if ( is_object( $response_data ) && 'success' === $response_data->status ) { return true; } else { return false; } } else { return false; } } else { return false; } } return $access; } add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );
Gestionnaire de licences pour WooCommerce Paramètres des filtres
Si vous utilisez le plugin License Manager for WooCommerce, les éléments suivants doivent être pris en compte. PHP Le code vous aidera à vérifier la validité de la licence :
/*** Valide la licence avec le gestionnaire de licence pour woocommerce./** * Valide la licence avec le gestionnaire de licence pour woocommerce.@param Boolean $access true ou false en fonction de l'accès * @param String $key la clé d'accès.* @param String $key la clé d'accès.* @param WP_REST_Request $request détails complets sur la demande * @return Boolean basé sur WP_REST_Request.* @return Boolean based on if access should be granted (retour d'un booléen basé sur WP_REST_Request).*/ function custom_check_cloudfunction custom_check_cloud_access( $access, $key, $request ) {// Si vrai, la clé correspond aux paramètres de Kadence Cloud.If true the key matches with settings in Kadence Cloud. if ( $access ) {if ( $access ) { return $access ; // Si la clé correspond aux paramètres de Kadence Cloud.}// S'assurer que le gestionnaire de licence pour woocommerce existe.if ( class_exists( 'LicenseManagerForWooCommerce\Repositories\Resources\License' ) ) {$license = \LicenseManagerForWooCommerce\Repositories\Resources\License::instance()->findBy(array('hash' => apply_filters('lmfwc_hash', $key ) )) ;if ( ! $license ) {// Aucune licence n'a été trouvée.return false ; } else { // Aucune licence n'a été trouvée.} else {// Vérifie si la licence a expiré.$expiresAt = $license->getExpiresAt() ; $dateExpiresAt = new DateTime($expires)$dateExpiresAt = new DateTime($expiresAt) ; $dateNow$dateNow = new DateTime('now', new DateTimeZone('UTC')) ;if ( $dateNow getTimesActivated() ) update($license->getId(),array('times_activated' => $timesActivatedNew)) ;}// Nous avons réussi, retournons vrai.Nous avons réussi, retournons vrai.}}return $access ; }}add_filter('kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 ) ;/** * Valide la licence avec le gestionnaire de licence pour woocommerce. /** * Valide la licence avec le gestionnaire de licence pour woocommerce. @param Boolean $access true ou false en fonction de l'accès * @param String $key la clé d'accès. * @param String $key la clé d'accès. * @param WP_REST_Request $request détails complets sur la demande * @return Boolean basé sur WP_REST_Request. * @return Boolean based on if access should be granted (retour d'un booléen basé sur WP_REST_Request). */ function custom_check_cloud function custom_check_cloud_access( $access, $key, $request ) { // Si vrai, la clé correspond aux paramètres de Kadence Cloud. If true the key matches with settings in Kadence Cloud. if ( $access ) { if ( $access ) { return $access ; // Si la clé correspond aux paramètres de Kadence Cloud. } // S'assurer que le gestionnaire de licence pour woocommerce existe. if ( class_exists( 'LicenseManagerForWooCommerce\Repositories\Resources\License' ) ) { $license = \LicenseManagerForWooCommerce\Repositories\Resources\License::instance()->findBy( array('hash' => apply_filters('lmfwc_hash', $key ) ) ) ; if ( ! $license ) { // Aucune licence n'a été trouvée. return false ; } else { // Aucune licence n'a été trouvée. } else { // Vérifie si la licence a expiré. $expiresAt = $license->getExpiresAt() ; $dateExpiresAt = new DateTime($expires) $dateExpiresAt = new DateTime($expiresAt) ; $dateNow $dateNow = new DateTime('now', new DateTimeZone('UTC')) ; if ( $dateNow getTimesActivated() ) update( $license->getId(), array( 'times_activated' => $timesActivatedNew ) ) ; } // Nous avons réussi, retournons vrai. Nous avons réussi, retournons vrai. } } return $access ; } } add_filter('kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 ) ;/** * Valide la licence avec le gestionnaire de licence pour woocommerce. /** * Valide la licence avec le gestionnaire de licence pour woocommerce. @param Boolean $access true ou false en fonction de l'accès * @param String $key la clé d'accès. * @param String $key la clé d'accès. * @param WP_REST_Request $request détails complets sur la demande * @return Boolean basé sur WP_REST_Request. * @return Boolean based on if access should be granted (retour d'un booléen basé sur WP_REST_Request). */ function custom_check_cloud function custom_check_cloud_access( $access, $key, $request ) { // Si vrai, la clé correspond aux paramètres de Kadence Cloud. If true the key matches with settings in Kadence Cloud. if ( $access ) { if ( $access ) { return $access ; // Si la clé correspond aux paramètres de Kadence Cloud. } // S'assurer que le gestionnaire de licence pour woocommerce existe. if ( class_exists( 'LicenseManagerForWooCommerce\Repositories\Resources\License' ) ) { $license = \LicenseManagerForWooCommerce\Repositories\Resources\License::instance()->findBy( array('hash' => apply_filters('lmfwc_hash', $key ) ) ) ; if ( ! $license ) { // Aucune licence n'a été trouvée. return false ; } else { // Aucune licence n'a été trouvée. } else { // Vérifie si la licence a expiré. $expiresAt = $license->getExpiresAt() ; $dateExpiresAt = new DateTime($expires) $dateExpiresAt = new DateTime($expiresAt) ; $dateNow $dateNow = new DateTime('now', new DateTimeZone('UTC')) ; if ( $dateNow getTimesActivated() ) update( $license->getId(), array( 'times_activated' => $timesActivatedNew ) ) ; } // Nous avons réussi, retournons vrai. Nous avons réussi, retournons vrai. } } return $access ; } } add_filter('kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 ) ;
résumés
combinant WooCommerce ou le plug-in License Manager for WooCommerce.Kadence Pattern Hub offre de puissantes fonctionnalités de gestion des clés d'accès. Ces plugins vous aident à gérer facilement les clés d'accès, à mettre en place des contrôles d'autorisation précis et à prendre en charge la vente de plusieurs collections, ce qui facilite grandement la vente et la gestion de contenu.
Lien vers cet article :https://www.361sale.com/fr/49064
L'article est protégé par le droit d'auteur et doit être reproduit avec mention.
Pas de commentaires