PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.0.3
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.0.3
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / ShortcodeParser / MembershipShortcodes.php
wp-user-avatar / src / ShortcodeParser Last commit date
Builder 3 years ago MyAccount 3 years ago EditProfileTag.php 4 years ago FormProcessor.php 3 years ago FrontendProfileTag.php 3 years ago Init.php 3 years ago LoginFormTag.php 4 years ago MelangeTag.php 4 years ago MemberDirectoryTag.php 4 years ago MembershipShortcodes.php 3 years ago PasswordResetTag.php 4 years ago RegistrationFormTag.php 4 years ago index.php 5 years ago
MembershipShortcodes.php
120 lines
1 <?php
2
3 namespace ProfilePress\Core\ShortcodeParser;
4
5 use ProfilePress\Core\Membership\Controllers\CheckoutSessionData;
6 use ProfilePress\Core\Membership\Models\Coupon\CouponFactory;
7 use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
8 use ProfilePress\Core\Membership\Models\Order\OrderFactory;
9
10 class MembershipShortcodes
11 {
12 public function __construct()
13 {
14 add_shortcode('profilepress-checkout', [$this, 'checkout_page']);
15 add_shortcode('profilepress-receipt', [$this, 'success_page']);
16
17 add_filter('the_content', [$this, 'filter_success_page_content'], 99999);
18 }
19
20 function filter_success_page_content($content)
21 {
22 if (isset($_GET['order_key'], $_GET['payment_method']) && ppress_is_success_page()) {
23 $order = OrderFactory::fromOrderKey(sanitize_key($_GET['order_key']));
24 if ($order->exists() && $order->is_pending()) {
25 ob_start();
26 ppress_render_view('order-processing', [
27 'order_success_page' => ppress_get_success_url($order->order_key)
28 ]);
29
30 $content = ob_get_clean();
31 }
32 }
33
34 return $content;
35 }
36
37 public function checkout_page()
38 {
39 ob_start();
40
41 echo '<div class="ppress-checkout__form">';
42
43 if ( ! isset($_GET['plan']) || ! is_numeric($_GET['plan'])) {
44
45 do_action('ppress_membership_checkout_empty_cart');
46
47 echo '<p>';
48 printf(
49 __('Your cart is currently empty. Click <a href="%s">here</a> to get started.', 'wp-user-avatar'),
50 /** @todo add setting to set url to redirect to when cart is empty */
51 apply_filters('ppress_membership_checkout_empty_cart_url', home_url())
52 );
53 echo '</p>';
54
55 } else {
56
57 $planObj = ppress_get_plan(absint($_GET['plan']));
58
59 if (
60 is_user_logged_in() &&
61 CustomerFactory::fromUserId(get_current_user_id())->has_active_subscription($planObj->id)) {
62 echo '<p>';
63 printf(
64 esc_html__('It looks like you’re already subscribed to this plan. Please go to %syour account%s to manage your subscription.', 'wp-user-avatar'),
65 '<a href="' . ppress_my_account_url() . '">', '</a>'
66 );
67 echo '</p>';
68 } else {
69
70 if ($planObj->is_active()) {
71
72 add_filter('ppress_logout_url_enable_redirect_get_query', '__return_true');
73
74 if ( ! empty($_GET['coupon'])) {
75
76 $coupon = CouponFactory::fromCode(sanitize_text_field($_GET['coupon']));
77
78 if ($coupon->exists()) {
79
80 ppress_session()->set(CheckoutSessionData::COUPON_CODE, [
81 'plan_id' => $planObj->id,
82 'coupon_code' => $coupon->code,
83 ]);
84 }
85 }
86
87 ppress_render_view('checkout/form-checkout', [
88 'planObj' => $planObj
89 ]);
90 } else {
91 do_action('ppress_membership_checkout_invalid_plan');
92 echo '<p>' . esc_html__('Invalid subscription plan.', 'wp-user-avatar') . '</p>';
93 }
94 }
95 }
96 echo '</div>';
97
98 return ob_get_clean();
99 }
100
101 public function success_page()
102 {
103 ob_start();
104 require apply_filters('ppress_order_receipt_template', dirname(__FILE__) . '/MyAccount/view-order.tmpl.php');
105
106 return ob_get_clean();
107 }
108
109 public static function get_instance()
110 {
111 static $instance = null;
112
113 if (is_null($instance)) {
114 $instance = new self();
115 }
116
117 return $instance;
118 }
119 }
120