/** * Shows an unsubscription confirmation form (frontend) * * @param UserTable $user * @param string $introText * @param int $planId * @param int $subscriptionId * @return string|null */ public function showUnsubscribeForm( &$user, $introText, $planId, $subscriptionId ) { global $_CB_database, $_CB_framework; $ui = $_CB_framework->getUi(); // get the most recent payment basket for that user and plan, and with that subscription if $subscriptionId != null: $subscription = new cbpaidUsersubscriptionRecord( $_CB_database ); $subscriptionLoaded = $subscription->load( (int) $subscriptionId ); if ( $subscriptionLoaded && ( $subscription->user_id == $user->id ) ) { $base_url = $this->getHttpsAbsURLwithParam( array( 'Itemid' => 0, 'user' => $user->id ), 'pluginclass' ); $return = '<form method="post" class="cbregUnsubscribeForm" action="'.$base_url.'">'; $return .= '<div id="cbregUnsubIntro">' . $introText . '</div>'; $return .= '<input type="hidden" name="user" value="'.$user->id.'" />'; $return .= '<input type="hidden" name="'.$this->_getPagingParamName("subscription[]").'" value="' . (int) $subscriptionId . '" />'; $return .= '<input type="hidden" name="'.$this->_getPagingParamName("plan[]").'" value="' . (int) $planId . '" />'; $return .= '<input type="hidden" name="'.$this->_getPagingParamName("act").'" value="confirm_unsub" />'; $return .= $this->_drawActionButton( $user, $ui, $subscription, $subscription->plan_id, CBPTXT::T("Yes: Unsubscribe"), 'confirm_unsubscribe', CBPTXT::T("This unsubscription is with immediate effect, without refund, and cannot be undone. Are you sure ?") ); $return .= $this->_drawActionButton( $user, $ui, $subscription, $subscription->plan_id, CBPTXT::T("No: Stay subscribed"), 'display_subscriptions' ); $return .= cbGetSpoofInputTag( 'plugin' ); $return .= '</form>'; } else { $params =& cbpaidApp::settingsParams(); $subTxt = CBPTXT::T( $params->get( 'subscription_name', 'subscription' ) ); $this->_setErrorMSG( sprintf( CBPTXT::T("No %s found"), $subTxt ) ); $return = null; } return $return; }