PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.28
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.28
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / stripe / controllers / FrmTransLiteSubscriptionsController.php

FrmTransLiteSubscriptionsController.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.28, at stripe/controllers/FrmTransLiteSubscriptionsController.php

166 lines 4.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5
6 class FrmTransLiteSubscriptionsController extends FrmTransLiteCRUDController {
7
8 /**
9 * @param object $subscription
10 *
11 * @return void
12 */
13 public static function load_sidebar_actions( $subscription ) {
14 $date_format = __( 'M j, Y @ G:i', 'formidable' );
15
16 FrmTransLiteActionsController::actions_js();
17
18 $frm_payment = new FrmTransLitePayment();
19 $payments = $frm_payment->get_all_by( $subscription->id, 'sub_id' );
20
21 include FrmTransLiteAppHelper::plugin_path() . '/views/subscriptions/sidebar_actions.php';
22 }
23
24 /**
25 * @since 6.5
26 *
27 * @param object $subscription
28 *
29 * @return void
30 */
31 public static function show_receipt_link( $subscription ) {
32 $link = esc_html( $subscription->sub_id );
33
34 if ( $subscription->sub_id !== 'None' ) {
35 /**
36 * Filter a receipt link for a specific gateway.
37 * For example, Stripe uses frm_sub_stripe_receipt.
38 *
39 * @since 6.5
40 *
41 * @param string $link
42 */
43 $link = apply_filters( 'frm_sub_' . $subscription->paysys . '_receipt', $link );
44 }
45
46 FrmAppHelper::kses_echo( $link, array( 'a' ) );
47 }
48
49 /**
50 * @param object $sub
51 * @param array $atts
52 *
53 * @return void
54 */
55 public static function show_cancel_link( $sub, $atts = array() ) {
56 if ( ! isset( $sub->user_id ) ) {
57 global $wpdb;
58 $sub->user_id = $wpdb->get_var( $wpdb->prepare( 'SELECT user_id FROM ' . $wpdb->prefix . 'frm_items WHERE id=%d', $sub->item_id ) );
59 }
60
61 $link = self::cancel_link( $sub, $atts );
62 FrmTransLiteAppHelper::echo_confirmation_link( $link );
63 }
64
65 /**
66 * @param object $sub
67 * @param array $atts
68 *
69 * @return string
70 */
71 public static function cancel_link( $sub, $atts = array() ) {
72 $defaults = array(
73 'cancel' => __( 'Cancel', 'formidable' ),
74 'canceled' => __( 'Canceled', 'formidable' ),
75 'confirm' => __( 'Are you sure you want to cancel that subscription?', 'formidable' ),
76 );
77 $atts = array_merge( $defaults, $atts );
78
79 if ( $sub->status === 'active' ) {
80 $link = admin_url( 'admin-ajax.php?action=frm_trans_cancel&sub=' . $sub->id . '&nonce=' . wp_create_nonce( 'frm_trans_ajax' ) );
81 $link = '<a href="' . esc_url( $link ) . '" class="frm_trans_ajax_link" data-frmverify="' . esc_attr( $atts['confirm'] ) . '" data-frmverify-btn="frm-button-red">';
82 $link .= esc_html( $atts['cancel'] );
83 $link .= '</a>';
84 } else {
85 $link = esc_html( $atts['canceled'] );
86 }
87
88 return $link;
89 }
90
91 /**
92 * Handle routing to cancel a subscription.
93 *
94 * @return void
95 */
96 public static function cancel_subscription() {
97 check_ajax_referer( 'frm_trans_ajax', 'nonce' );
98
99 $sub_id = FrmAppHelper::get_param( 'sub', '', 'get', 'sanitize_text_field' );
100
101 if ( $sub_id ) {
102 $frm_sub = new FrmTransLiteSubscription();
103 $sub = $frm_sub->get_one( $sub_id );
104
105 if ( $sub ) {
106 switch ( $sub->paysys ) {
107 case 'stripe':
108 $canceled = FrmStrpLiteAppHelper::call_stripe_helper_class( 'cancel_subscription', $sub->sub_id );
109 break;
110 case 'square':
111 $canceled = FrmSquareLiteConnectHelper::cancel_subscription( $sub->sub_id );
112 break;
113 default:
114 $canceled = false;
115 break;
116 }
117
118 if ( $canceled ) {
119 self::change_subscription_status(
120 array(
121 'status' => 'future_cancel',
122 'sub' => $sub,
123 )
124 );
125
126 $message = __( 'Canceled', 'formidable' );
127 } else {
128 $message = __( 'Failed', 'formidable' );
129 }
130 } else {
131 $message = __( 'That subscription was not found', 'formidable' );
132 }//end if
133 } else {
134 $message = __( 'Oops! No subscription was selected for cancelation.', 'formidable' );
135 }//end if
136
137 echo esc_html( $message );
138 wp_die();
139 }
140
141 /**
142 * @since 6.5, introduced in v1.12 of the Payments submodule.
143 *
144 * @param array $atts
145 *
146 * @return void
147 */
148 public static function change_subscription_status( $atts ) {
149 $frm_sub = new FrmTransLiteSubscription();
150 $frm_sub->update( $atts['sub']->id, array( 'status' => $atts['status'] ) );
151 $atts['sub']->status = $atts['status'];
152
153 FrmTransLiteActionsController::trigger_subscription_status_change( $atts['sub'] );
154 }
155
156 /**
157 * @deprecated 6.27
158 *
159 * @return string|null
160 */
161 public static function list_subscriptions_shortcode() {
162 _deprecated_function( __METHOD__, '6.27' );
163 return null;
164 }
165 }
166