Verkaufe Zugriff auf die Kadence Cloud

Verkauf Zugriff auf deine WordPress-Designs in der Kadence Cloud

Du willst Zugriffe auf deine eigene WordPress Design Library in der 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.

Vorher solltest du noch lesen, wie du Pro Templates für deine Cloud Library erstellst.

Was brauche ich für diese Anleitung?

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 sehr ähnlich.

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:

WooCommerce Software License Plugin
WooCommerce Software License Plugin

Hier ein Screenshot vom kostenlosen License Manager for WooCommerce Plugin:

License Manager for WooCommerce
License Manager for WooCommerce Plugin

Schritt 2 – Verbinden von Kadence Cloud 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 noch nicht für die Domain aktiviert wurde, wird versucht, sie zu aktivieren. Wenn 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 die Kadence Cloud 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.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.