File "FrmTransLiteSubscriptionsController.php"
Full Path: /home/adniftyx/public_html/wp-content/plugins/formidable/stripe/controllers/FrmTransLiteSubscriptionsController.php
File size: 4.27 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( 'You are not allowed to call this page directly.' );
}
class FrmTransLiteSubscriptionsController extends FrmTransLiteCRUDController {
/**
* @param object $subscription
*
* @return void
*/
public static function load_sidebar_actions( $subscription ) {
$date_format = __( 'M j, Y @ G:i', 'formidable' );
FrmTransLiteActionsController::actions_js();
$frm_payment = new FrmTransLitePayment();
$payments = $frm_payment->get_all_by( $subscription->id, 'sub_id' );
include FrmTransLiteAppHelper::plugin_path() . '/views/subscriptions/sidebar_actions.php';
}
/**
* @since 6.5
*
* @param object $subscription
*
* @return void
*/
public static function show_receipt_link( $subscription ) {
$link = esc_html( $subscription->sub_id );
if ( $subscription->sub_id !== 'None' ) {
/**
* Filter a receipt link for a specific gateway.
* For example, Stripe uses frm_sub_stripe_receipt.
*
* @since 6.5
*
* @param string $link
*/
$link = apply_filters( 'frm_sub_' . $subscription->paysys . '_receipt', $link );
}
FrmAppHelper::kses_echo( $link, array( 'a' ) );
}
/**
* @param object $sub
* @param array $atts
*
* @return void
*/
public static function show_cancel_link( $sub, $atts = array() ) {
if ( ! isset( $sub->user_id ) ) {
global $wpdb;
$sub->user_id = $wpdb->get_var( $wpdb->prepare( 'SELECT user_id FROM ' . $wpdb->prefix . 'frm_items WHERE id=%d', $sub->item_id ) );
}
$link = self::cancel_link( $sub, $atts );
FrmTransLiteAppHelper::echo_confirmation_link( $link );
}
/**
* @param object $sub
* @param array $atts
*
* @return string
*/
public static function cancel_link( $sub, $atts = array() ) {
$defaults = array(
'cancel' => __( 'Cancel', 'formidable' ),
'canceled' => __( 'Canceled', 'formidable' ),
'confirm' => __( 'Are you sure you want to cancel that subscription?', 'formidable' ),
);
$atts = array_merge( $defaults, $atts );
if ( $sub->status === 'active' ) {
$link = admin_url( 'admin-ajax.php?action=frm_trans_cancel&sub=' . $sub->id . '&nonce=' . wp_create_nonce( 'frm_trans_ajax' ) );
$link = '<a href="' . esc_url( $link ) . '" class="frm_trans_ajax_link" data-frmverify="' . esc_attr( $atts['confirm'] ) . '" data-frmverify-btn="frm-button-red">';
$link .= esc_html( $atts['cancel'] );
$link .= '</a>';
} else {
$link = esc_html( $atts['canceled'] );
}
return $link;
}
/**
* Handle routing to cancel a subscription.
*
* @return void
*/
public static function cancel_subscription() {
check_ajax_referer( 'frm_trans_ajax', 'nonce' );
$sub_id = FrmAppHelper::get_param( 'sub', '', 'get', 'sanitize_text_field' );
if ( $sub_id ) {
$frm_sub = new FrmTransLiteSubscription();
$sub = $frm_sub->get_one( $sub_id );
if ( $sub ) {
switch ( $sub->paysys ) {
case 'stripe':
$canceled = FrmStrpLiteAppHelper::call_stripe_helper_class( 'cancel_subscription', $sub->sub_id );
break;
case 'square':
$canceled = FrmSquareLiteConnectHelper::cancel_subscription( $sub->sub_id );
break;
default:
$canceled = false;
break;
}
if ( $canceled ) {
self::change_subscription_status(
array(
'status' => 'future_cancel',
'sub' => $sub,
)
);
$message = __( 'Canceled', 'formidable' );
} else {
$message = __( 'Failed', 'formidable' );
}
} else {
$message = __( 'That subscription was not found', 'formidable' );
}//end if
} else {
$message = __( 'Oops! No subscription was selected for cancelation.', 'formidable' );
}//end if
echo esc_html( $message );
wp_die();
}
/**
* @since 6.5, introduced in v1.12 of the Payments submodule.
*
* @param array $atts
*
* @return void
*/
public static function change_subscription_status( $atts ) {
$frm_sub = new FrmTransLiteSubscription();
$frm_sub->update( $atts['sub']->id, array( 'status' => $atts['status'] ) );
$atts['sub']->status = $atts['status'];
FrmTransLiteActionsController::trigger_subscription_status_change( $atts['sub'] );
}
/**
* @deprecated 6.27
*
* @return string|null
*/
public static function list_subscriptions_shortcode() {
_deprecated_function( __METHOD__, '6.27' );
return null;
}
}