/** * Purchase button * * @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/includes/payment.form.php#L78 * * @param M_Subscription $subscription * @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/classes/class.subscription.php * * @param array $pricing * @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/classes/class.subscription.php#L110 * * array( * array( * 'period' => '1', * 'amount' => '50.00', * 'type' => 'indefinite', * 'unit' => 'm' * ) * ) * * @param int $user_id WordPress user/member ID */ public function purchase_button($subscription, $pricing, $user_id) { if (Pronamic_WP_Pay_Extensions_WPMUDEV_Membership_Membership::is_pricing_free($pricing)) { // @todo what todo? return; } else { $membership = Pronamic_WP_Pay_Extensions_WPMUDEV_Membership_Membership::get_membership($user_id); $config_id = get_option(Pronamic_WP_Pay_Extensions_WPMUDEV_Membership_Extension::OPTION_CONFIG_ID); $data = new Pronamic_WP_Pay_Extensions_WPMUDEV_Membership_PaymentData($subscription, $membership); $gateway = Pronamic_WP_Pay_Plugin::get_gateway($config_id); $gateway->set_payment_method($this->payment_method); if ($gateway) { // @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/classes/membershipadmin.php#K2908 if ('new' === strtolower(Pronamic_WP_Pay_Extensions_WPMUDEV_Membership_Membership::get_option('formtype'))) { $action = add_query_arg(array('action' => 'buynow', 'subscription' => $data->get_subscription_id()), admin_url('admin-ajax.php')); } else { $action = '#pronamic-pay-form'; } printf('<form id="pronamic-pay-form" method="post" action="%s">', $action); printf('<img src="%s" alt="%s" />', esc_attr(plugins_url('images/ideal-logo-pay-off-2-lines.png', Pronamic_WP_Pay_Plugin::$file)), esc_attr__('iDEAL - Online payment through your own bank', 'pronamic_ideal')); echo '<div style="margin-top: 1em;">'; echo $gateway->get_input_html(); // Data $fields = array('subscription_id' => $data->get_subscription_id(), 'user_id' => $user_id); // Coupon if (function_exists('membership_get_current_coupon')) { $coupon = membership_get_current_coupon(); if ($coupon) { $fields['coupon_code'] = $coupon->get_coupon_code(); } } echo Pronamic_IDeal_IDeal::htmlHiddenFields($fields); // Submit button printf('<input type="submit" name="pronamic_pay_membership_%s" value="%s" />', esc_attr($this->gateway), esc_attr__('Pay', 'pronamic_ideal')); echo '</div>'; if (isset($this->error) && is_wp_error($this->error)) { foreach ($this->error->get_error_messages() as $message) { echo $message, '<br />'; } } printf('</form>'); } } }
public function to_html() { global $current_user; $subscription = $this->data['ms_relationship']; $membership = $subscription->get_membership(); $invoice = $subscription->get_current_invoice(); $ms_gateway = $this->data['gateway']; $gateway = Pronamic_WP_Pay_Plugin::get_gateway($ms_gateway->config_id); // Don't set payment method here as the issuer id is unknown when Pronamic_WP_Pay_Plugin::start() creates // the payment. Therefore, any chosen banks won't get used for the payment. $data = new Pronamic_WP_Pay_Extensions_WPMUDEV_Membership_PaymentData($subscription, $membership); $html = ''; if ($gateway) { ob_start(); $gateway->set_payment_method($this->payment_method); echo '<form id="pronamic-pay-form" method="post">'; // Button image URL $button_image_url = plugins_url('images/ideal-logo-pay-off-2-lines.png', Pronamic_WP_Pay_Plugin::$file); if (isset($ms_gateway->button_image_url) && '' !== $ms_gateway->button_image_url) { $button_image_url = $ms_gateway->button_image_url; } // Button description $button_description = __('iDEAL - Online payment through your own bank', 'pronamic_ideal'); if (isset($ms_gateway->button_description) && '' !== $ms_gateway->button_description) { $button_description = $ms_gateway->button_description; } printf('<img src="%s" alt="%s" />', esc_attr($button_image_url), esc_attr($button_description)); echo '<div style="margin-top: 1em;">'; echo $gateway->get_input_html(); // Data $fields = array('subscription_id' => $data->get_subscription_id(), 'user_id' => $current_user->ID, 'invoice_id' => $invoice->id); echo Pronamic_IDeal_IDeal::htmlHiddenFields($fields); // Submit button printf(' <input type="submit" name="pronamic_pay_membership_%s" value="%s" />', esc_attr($ms_gateway->gateway), esc_attr__('Pay', 'pronamic_ideal')); echo '</div>'; $error = $gateway->get_error(); if (is_wp_error($error)) { foreach ($error->get_error_messages() as $message) { echo $message, '<br />'; } } ?> </form> <?php $payment_form = apply_filters('ms_gateway_form', ob_get_clean(), $ms_gateway, $invoice, $this); $row_class = 'gateway_' . $ms_gateway->id; if (!$ms_gateway->is_live_mode()) { $row_class .= ' sandbox-mode'; } ob_start(); ?> <tr class="<?php echo esc_attr($row_class); ?> "> <td class="ms-buy-now-column" colspan="2"> <?php echo $payment_form; ?> </td> </tr> <?php $html = ob_get_clean(); $html = apply_filters('ms_gateway_button', $html, $ms_gateway->id, $this); } return $html; }