Verkauf Zugriff auf deine WordPress-Designs im Kadence Pattern Hub
Möchtest du mehr zum Thema Zugriff Verkaufen erfahren?
Du willst Zugriffe auf deine eigene WordPress Design Library im Kadence Pattern Hub (vorher Kadence Cloud) verkaufen? Dann richten wir gemeinsam die automatische Vergabe von Lizenzschlüsseln ein. Das hört sich zunächst kompliziert an, ist es aber nicht. Zusätzlich ist die komplette Software für diese Aktion kostenlos erhältlich. Zumindest, wenn du die Kadence Cloud bereits besitzt.
Mit der Kadence Pattern Hub kannst du deine eigene WordPress Design Library teilen und sogar verkaufen. Dafür brauchst du einen WooCommerce-Checkout und ein Tool, welches Lizenzen automatisch vergibt. Aufgrund dieser Lizenzen kannst du den Zugriff beliebig erlauben oder verweigern.
Vorher solltest du noch lesen, wie du Pro Templates für deine Pattern Hub erstellst.
Was brauche ich für diese Anleitung?
- Einen selbstgehosteten WordPress-Blog
- Das Kadence Pattern Hub Plugin
- WooCommerce
- Entweder das kostenpflichtige Plugin WooCommerce Software License ($ 49,00) oder
- den kostenlosen License Manager for WooCommerce
Das folgende Video zeigt dir, wie du Zugriff auf deine WordPress-Designs und Blöcke verkaufen kannst:
Schritt 1 – Erstelle dein Cloud Access Produkt
In diesem Tutorial werden wir nicht die Verwendung von WooCommerce-Subscriptions behandeln, der Prozess ist aber fast identisch.
Erstelle ein neues WooCommerce-Produkt. Lege es als virtuelles Produkt an und richte je nach Plugin die Lizenzkonfiguration ein.
Das ist ein Screenshot vom kostenpflichtigen WooCommerce Software License Plugin:
Hier ein Screenshot vom kostenlosen License Manager for WooCommerce Plugin:
Schritt 2 – Verbinden von Kadence Pattern Hub mit License Check
Für diesen Schritt musst du einen benutzerdefinierten PHP-Filter hinzufügen, abhängig davon, welches Lizenzmanager-Plugin du verwendest. Dafür empfehle ich dir, ein Code Snippet Plugin zu verwenden, um den PHP-Filter hinzuzufügen.
WooCommerce Software License Filter Code:
Der PHP-Filter unten prüft, ob die Lizenz gültig ist, und ob sie für die Domain der Anfrageseite aktiviert ist. Wenn sie aktiviert ist, wird true
zurückgegeben. Wenn sie bislang nicht für die Domain aktiviert wurde, wird versucht, sie zu aktivieren. Falls der Schlüssel nicht gültig ist oder bereits auf der maximalen Anzahl von Sites verwendet wird, wird der Zugriff verhindert.
*Hinweis: Achte darauf, dass du die PRODUCT_UNIQUE_ID mit der Unique ID änderst, die du beim Erstellen deines Produkts in der Lizenzkonfiguration (Zeile 22) festgelegt hast.
/**
* 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 Cloud. 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 );
Wenn du deine WooCommerce Softwarelizenz-Zugangsschlüssel auf eine bestimmte Sammlung in deiner Cloud beschränken möchtest, kannst du das mit dem folgenden Filter tun. Du musst nur den „COLLECTION_SLUG
“ durch den Slug ersetzen, den du senden möchtest.
/**
* Set access to a specific cloud library collection.
*
* @param array $args the query args for retrieving items.
* @param string $key the access key.
* @param array $request_extras the extra args for the request.
* @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 );
License Manager for WooCommerce filter Code
Der PHP-Filter unten prüft, ob die Lizenz gültig ist.
/**
* Validates license with license manager for woocommerce.
*
* @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 Cloud.
if ( $access ) {
return $access;
}
// Make sure license manager for woocommerce exists.
if ( class_exists( 'LicenseManagerForWooCommerce\Repositories\Resources\License' ) ) {
$license = \LicenseManagerForWooCommerce\Repositories\Resources\License::instance()->findBy(
array( 'hash' => apply_filters( 'lmfwc_hash', $key ) )
);
if ( ! $license ) {
// No license was found.
return false;
} else {
// Check if expired.
$expiresAt = $license->getExpiresAt();
$dateExpiresAt = new DateTime($expiresAt);
$dateNow = new DateTime('now', new DateTimeZone('UTC'));
if ( $dateNow < $dateExpiresAt ) {
return false;
}
// Make sure it shows "activated".
if ( intval( $license->getTimesActivated() ) < 1 ) {
$timesActivatedNew = 1;
$updatedLicense = \LicenseManagerForWooCommerce\Repositories\Resources\License::instance()->update(
$license->getId(),
array(
'times_activated' => $timesActivatedNew
)
);
}
// We have success lets return true.
return true;
}
}
return $access;
}
add_filter( 'kadence_cloud_rest_request_access', 'custom_check_cloud_access', 10, 3 );
Hast du Probleme mit dem Code, findest du weitere Informationen direkt beim Entwickler.
Kadence Theme
Erstelle atemberaubende Websites in minutenschnelle mit diesem schlanken und schnellen WordPress-Theme. Fortschrittliches Webdesign!
Kadence Blocks
Kadence Blocks bietet Werkzeuge, die es dir ermöglichen, einzigartige und aussagekräftige Inhalte einfacher im nativen WordPress-Editor zu erstellen.
Fazit
Es ist schon krass, was der Kadence Pattern Hub und die komplette Kadence WP Suite für Möglichkeiten bietet. Was mit dem Kadence Theme begonnen hat, ist heute ein Gamechanger für Agenturen und Freelancer. Mit etwas Glück ist auch gerade ein Kadence Discount aktiv.
Offenlegung Werbelinks: Mit einem Stern (*) gekennzeichnete Links und Buttons sind sogenannte Affiliate-Links. BloggerPilot bekommt bei einem Kauf eine Provision, die sich jedoch nicht auf den Endpreis auswirkt. Es ist uns wichtig zu betonen, dass dies keinen Einfluss auf unsere Bewertung oder Meinung hat.