class-jetpack-token-subscription-service.php
5 years ago
class-jwt.php
3 years ago
class-subscription-service.php
3 years ago
class-token-subscription-service.php
3 years ago
class-token-subscription.php
5 years ago
class-unconfigured-subscription-service.php
3 years ago
class-wpcom-offline-subscription-service.php
3 years ago
class-wpcom-online-subscription-service.php
3 years ago
class-wpcom-token-subscription-service.php
5 years ago
include.php
3 years ago
include.php
84 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Subcription service includes to build out the service. |
| 4 | * |
| 5 | * @package Automattic\Jetpack\Extensions\Premium_Content |
| 6 | */ |
| 7 | |
| 8 | namespace Automattic\Jetpack\Extensions\Premium_Content; |
| 9 | |
| 10 | require_once __DIR__ . '/class-jwt.php'; |
| 11 | require_once __DIR__ . '/class-subscription-service.php'; |
| 12 | require_once __DIR__ . '/class-token-subscription.php'; |
| 13 | require_once __DIR__ . '/class-token-subscription-service.php'; |
| 14 | require_once __DIR__ . '/class-wpcom-token-subscription-service.php'; |
| 15 | require_once __DIR__ . '/class-wpcom-online-subscription-service.php'; |
| 16 | require_once __DIR__ . '/class-wpcom-offline-subscription-service.php'; |
| 17 | require_once __DIR__ . '/class-jetpack-token-subscription-service.php'; |
| 18 | require_once __DIR__ . '/class-unconfigured-subscription-service.php'; |
| 19 | |
| 20 | use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\Jetpack_Token_Subscription_Service; |
| 21 | use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\Unconfigured_Subscription_Service; |
| 22 | use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\WPCOM_Online_Subscription_Service; |
| 23 | use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\WPCOM_Token_Subscription_Service; |
| 24 | |
| 25 | const PAYWALL_FILTER = 'earn_premium_content_subscription_service'; |
| 26 | |
| 27 | /** |
| 28 | * Initializes the premium content subscription service. |
| 29 | */ |
| 30 | function paywall_initialize() { |
| 31 | $paywall = subscription_service(); |
| 32 | if ( $paywall ) { |
| 33 | $paywall->initialize(); |
| 34 | } |
| 35 | } |
| 36 | add_action( 'init', 'Automattic\Jetpack\Extensions\Premium_Content\paywall_initialize', 9 ); |
| 37 | |
| 38 | /** |
| 39 | * Gets the service handling the premium content subscriptions. |
| 40 | * |
| 41 | * @return Subscription_Service Service that will handle the premium content subscriptions. |
| 42 | */ |
| 43 | function subscription_service() { |
| 44 | /** |
| 45 | * Filter the Jetpack_Token_Subscription_Service class. |
| 46 | * |
| 47 | * @since 9.4.0 |
| 48 | * |
| 49 | * @param null|Jetpack_Token_Subscription_Service $interface Registered Subscription_Service. |
| 50 | */ |
| 51 | $interface = apply_filters( PAYWALL_FILTER, null ); |
| 52 | if ( ! $interface instanceof Jetpack_Token_Subscription_Service ) { |
| 53 | _doing_it_wrong( __FUNCTION__, 'No Subscription_Service registered for the ' . esc_html( PAYWALL_FILTER ) . ' filter', 'jetpack' ); |
| 54 | } |
| 55 | return $interface; |
| 56 | } |
| 57 | |
| 58 | /** |
| 59 | * Gets the default service handling the premium content. |
| 60 | * |
| 61 | * @param Subscription_Service $service If set, this service will be used by default. |
| 62 | * @return Subscription_Service Service that will handle the premium content. |
| 63 | */ |
| 64 | function default_service( $service ) { |
| 65 | if ( null !== $service ) { |
| 66 | return $service; |
| 67 | } |
| 68 | |
| 69 | if ( WPCOM_Online_Subscription_Service::available() ) { |
| 70 | return new WPCOM_Online_Subscription_Service(); |
| 71 | } |
| 72 | |
| 73 | if ( WPCOM_Token_Subscription_Service::available() ) { |
| 74 | return new WPCOM_Token_Subscription_Service(); |
| 75 | } |
| 76 | |
| 77 | if ( Jetpack_Token_Subscription_Service::available() ) { |
| 78 | return new Jetpack_Token_Subscription_Service(); |
| 79 | } |
| 80 | |
| 81 | return new Unconfigured_Subscription_Service(); |
| 82 | } |
| 83 | add_filter( PAYWALL_FILTER, 'Automattic\Jetpack\Extensions\Premium_Content\default_service' ); |
| 84 |