Tutoriel Kadence : Vendre des clés d'accès au Hub de motifs Kadence dans WooCommerce

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

É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
  • 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
Licence du logiciel WooCommerce(Licence du logiciel WooCommerce)
Image [4]-Guide complet pour la vente de clés d'accès au hub de Kadence Pattern dans WooCommerce
Gestionnaire de licences WooCommerce(Gestionnaire de licences pour WooCommerce)

É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_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 ) ;
/** * 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.


Contactez nous
Vous ne pouvez pas lire l'article ? Contactez-nous pour une réponse gratuite ! Aide gratuite pour les sites personnels et les sites de petites entreprises !
Tel : 020-2206-9892
QQ咨询:1025174874
(iii) Courriel : info@361sale.com
Horaires de travail : du lundi au vendredi, de 9h30 à 18h30, jours fériés.
© Déclaration de reproduction
Cet article a été écrit par : les voleurs seront des souris et des rats.
LA FIN
Si vous l'aimez, soutenez-le.
félicitations464 partager (joies, avantages, privilèges, etc.) avec les autres
commentaires achat de canapé

Veuillez vous connecter pour poster un commentaire

    Pas de commentaires