本文整理汇总了PHP中c_ws_plugin__s2member_utils_urls::add_s2member_sig方法的典型用法代码示例。如果您正苦于以下问题:PHP c_ws_plugin__s2member_utils_urls::add_s2member_sig方法的具体用法?PHP c_ws_plugin__s2member_utils_urls::add_s2member_sig怎么用?PHP c_ws_plugin__s2member_utils_urls::add_s2member_sig使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类c_ws_plugin__s2member_utils_urls
的用法示例。
在下文中一共展示了c_ws_plugin__s2member_utils_urls::add_s2member_sig方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: google_return
/**
* Handles Google Return URL processing.
*
* @package s2Member\Google
* @since 131123
*
* @attaches-to ``add_action("init");``
*
* @return null Or exits script execution after redirection.
*/
public static function google_return()
{
global $current_site, $current_blog;
if (!empty($_GET["s2member_pro_google_return"]) && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_google_merchant_id"]) {
$google["s2member_log"][] = "Return URL processed on: " . date("D M j, Y g:i:s a T");
$google["s2member_log"][] = "Piping through s2Member's core/standard PayPal processor with `proxy_use` ( `ty-email` ).";
$google["s2member_log"][] = "Please check PayPal RTN logs for further processing details.";
$rtn_q = "&s2member_paypal_proxy=google&s2member_paypal_proxy_use=standard-emails,ty-email";
if (!empty($_GET["s2member_pro_google_return_success"])) {
$rtn_q .= "&s2member_paypal_return_success=" . rawurlencode(trim(stripslashes($_GET["s2member_pro_google_return_success"])));
}
$rtn_r = home_url("/?s2member_pro_google_return&s2member_paypal_return=1" . $rtn_q);
$rtn_r = c_ws_plugin__s2member_utils_urls::add_s2member_sig($rtn_r, "s2member_paypal_proxy_verification");
$google["s2member_log"][] = $rtn_r;
wp_redirect($rtn_r);
$logt = c_ws_plugin__s2member_utilities::time_details();
$logv = c_ws_plugin__s2member_utilities::ver_details();
$logm = c_ws_plugin__s2member_utilities::mem_details();
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . @$_SERVER["HTTP_USER_AGENT"];
$log4 = is_multisite() && !is_main_site() ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
$log2 = is_multisite() && !is_main_site() ? "google-rtn-4-" . trim(preg_replace("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "google-rtn.log";
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"]) {
if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"])) {
if (is_writable($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files()) {
file_put_contents($logs_dir . "/" . $log2, "LOG ENTRY: " . $logt . "\n" . $logv . "\n" . $logm . "\n" . $log4 . "\n" . c_ws_plugin__s2member_utils_logs::conceal_private_info(var_export($google, true)) . "\n\n", FILE_APPEND);
}
}
}
exit;
// Exit now.
}
}
示例2: stripe_update
/**
* Handles processing of Pro-Form billing updates.
*
* @package s2Member\Stripe
* @since 140617
*
* @attaches-to ``add_action('init');``
*/
public static function stripe_update()
{
if (!empty($_POST['s2member_pro_stripe_update']['nonce']) && ($nonce = $_POST['s2member_pro_stripe_update']['nonce']) && wp_verify_nonce($nonce, 's2member-pro-stripe-update')) {
$GLOBALS['ws_plugin__s2member_pro_stripe_update_response'] = array();
// This holds the global response details.
$global_response =& $GLOBALS['ws_plugin__s2member_pro_stripe_update_response'];
$post_vars = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST['s2member_pro_stripe_update']));
$post_vars['attr'] = !empty($post_vars['attr']) ? (array) unserialize(c_ws_plugin__s2member_utils_encryption::decrypt($post_vars['attr'])) : array();
$post_vars['attr'] = apply_filters('ws_plugin__s2member_pro_stripe_update_post_attr', $post_vars['attr'], get_defined_vars());
$post_vars = c_ws_plugin__s2member_utils_captchas::recaptcha_post_vars($post_vars);
// Collect reCAPTCHA™ post vars.
if (!c_ws_plugin__s2member_pro_stripe_responses::stripe_form_attr_validation_errors($post_vars['attr'])) {
if (!($form_submission_validation_errors = c_ws_plugin__s2member_pro_stripe_responses::stripe_form_submission_validation_errors('update', $post_vars))) {
if (is_user_logged_in() && ($user = wp_get_current_user()) && ($user_id = $user->ID)) {
if (($cur__subscr_cid = get_user_option('s2member_subscr_cid')) && ($cur__subscr_id = get_user_option('s2member_subscr_id'))) {
if (is_object($stripe_subscription = c_ws_plugin__s2member_pro_stripe_utilities::get_customer_subscription($cur__subscr_cid, $cur__subscr_id)) && !preg_match('/^canceled$/i', $stripe_subscription->status) && !$stripe_subscription->cancel_at_period_end) {
unset($_POST['s2member_pro_stripe_update']['source_token']);
// These are good one-time only.
unset($_POST['s2member_pro_stripe_update']['source_token_summary']);
if (is_object($set_customer_source = c_ws_plugin__s2member_pro_stripe_utilities::set_customer_source($cur__subscr_cid, $post_vars['source_token'], $post_vars, $post_vars['attr']['reject_prepaid']))) {
$global_response = array('response' => _x('<strong>Confirmed.</strong> Your billing information has been updated.', 's2member-front', 's2member'));
if ($post_vars['attr']['success'] && ($custom_success_url = str_ireplace(array('%%s_response%%', '%%response%%'), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response['response'])), urlencode($global_response['response'])), $post_vars['attr']['success'])) && ($custom_success_url = trim(preg_replace('/%%(.+?)%%/i', '', $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, 's2p-v')) . exit;
}
} else {
$global_response = array('response' => $set_customer_source, 'error' => TRUE);
}
} else {
$global_response = array('response' => _x('<strong>Unable to update.</strong> You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance.', 's2member-front', 's2member'), 'error' => TRUE);
}
} else {
$global_response = array('response' => _x('<strong>Oops.</strong> No Customer|Subscr. ID. Please contact Support for assistance.', 's2member-front', 's2member'), 'error' => TRUE);
}
} else {
$global_response = array('response' => _x('You\'re <strong>NOT</strong> logged in.', 's2member-front', 's2member'), 'error' => TRUE);
}
} else {
// Input form field validation errors.
$global_response = $form_submission_validation_errors;
}
}
}
}
示例3: stripe_sp_checkout
/**
* Handles processing of Pro-Forms for Specific Post/Page checkout.
*
* @package s2Member\Stripe
* @since 140617
*
* @attaches-to ``add_action('init');``
*
* @return null Or exits script execution after a custom URL redirection.
*/
public static function stripe_sp_checkout()
{
if (!empty($_POST['s2member_pro_stripe_sp_checkout']['nonce']) && ($nonce = $_POST['s2member_pro_stripe_sp_checkout']['nonce']) && wp_verify_nonce($nonce, 's2member-pro-stripe-sp-checkout')) {
$GLOBALS['ws_plugin__s2member_pro_stripe_sp_checkout_response'] = array();
// This holds the global response details.
$global_response =& $GLOBALS['ws_plugin__s2member_pro_stripe_sp_checkout_response'];
$post_vars = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST['s2member_pro_stripe_sp_checkout']));
$post_vars['attr'] = !empty($post_vars['attr']) ? (array) unserialize(c_ws_plugin__s2member_utils_encryption::decrypt($post_vars['attr'])) : array();
$post_vars['attr'] = apply_filters('ws_plugin__s2member_pro_stripe_sp_checkout_post_attr', $post_vars['attr'], get_defined_vars());
$post_vars['name'] = trim($post_vars['first_name'] . ' ' . $post_vars['last_name']);
$post_vars['email'] = apply_filters('user_registration_email', sanitize_email($post_vars['email']), get_defined_vars());
$post_vars['recaptcha_challenge_field'] = isset($_POST['recaptcha_challenge_field']) ? trim(stripslashes($_POST['recaptcha_challenge_field'])) : '';
$post_vars['recaptcha_response_field'] = isset($_POST['recaptcha_response_field']) ? trim(stripslashes($_POST['recaptcha_response_field'])) : '';
if (!c_ws_plugin__s2member_pro_stripe_responses::stripe_form_attr_validation_errors($post_vars['attr'])) {
if (!($form_submission_validation_errors = c_ws_plugin__s2member_pro_stripe_responses::stripe_form_submission_validation_errors('sp-checkout', $post_vars))) {
unset($_POST['s2member_pro_stripe_sp_checkout']['source_token']);
// Good one-time only.
unset($_POST['s2member_pro_stripe_sp_checkout']['source_token_summary']);
// Good one-time only.
$is_bitcoin = !empty($post_vars['source_token']) && stripos($post_vars['source_token'], 'btcrcv_') === 0;
$cp_attr = c_ws_plugin__s2member_pro_stripe_utilities::apply_coupon($post_vars['attr'], $post_vars['coupon'], 'attr', array('affiliates-silent-post'));
$cost_calculations = c_ws_plugin__s2member_pro_stripe_utilities::cost(NULL, $cp_attr['ra'], $post_vars['state'], $post_vars['country'], $post_vars['zip'], $cp_attr['cc'], $cp_attr['desc'], $is_bitcoin);
if (!$global_response) {
if ($cost_calculations['total'] > 0) {
if (!is_object($stripe_customer = c_ws_plugin__s2member_pro_stripe_utilities::get_customer(get_current_user_id(), $post_vars['email'], $post_vars['first_name'], $post_vars['last_name'], array(), $post_vars))) {
$global_response = array('response' => $stripe_customer, 'error' => TRUE);
} else {
if (!is_object($stripe_customer = $stripe_customer_with_source = c_ws_plugin__s2member_pro_stripe_utilities::set_customer_source($stripe_customer->id, $post_vars['source_token'], $post_vars))) {
$global_response = array('response' => $stripe_customer, 'error' => TRUE);
} else {
if (!is_object($stripe_charge = c_ws_plugin__s2member_pro_stripe_utilities::create_customer_charge($stripe_customer->id, $cost_calculations['total'], $cost_calculations['cur'], $cost_calculations['desc'], array(), $post_vars, $cost_calculations))) {
$global_response = array('response' => $stripe_charge, 'error' => TRUE);
} else {
$new__txn_cid = $stripe_customer->id;
$new__txn_id = $stripe_charge->id;
}
}
}
}
}
if (!$global_response) {
if (empty($new__txn_cid)) {
$new__txn_cid = strtoupper('free-' . uniqid());
}
if (empty($new__txn_id)) {
$new__txn_id = strtoupper('free-' . uniqid());
}
$ipn['txn_type'] = 'web_accept';
$ipn['txn_cid'] = $new__txn_cid;
$ipn['txn_id'] = $new__txn_id;
$ipn['custom'] = $post_vars['attr']['custom'];
$ipn['mc_gross'] = $cost_calculations['total'];
$ipn['mc_currency'] = $cost_calculations['cur'];
$ipn['tax'] = $cost_calculations['tax'];
$ipn['payer_email'] = $post_vars['email'];
$ipn['first_name'] = $post_vars['first_name'];
$ipn['last_name'] = $post_vars['last_name'];
if (is_user_logged_in() && ($referencing = c_ws_plugin__s2member_utils_users::get_user_subscr_or_wp_id())) {
$ipn['option_name1'] = 'Referencing Customer ID';
$ipn['option_selection1'] = $referencing;
} else {
$ipn['option_name1'] = 'Originating Domain';
$ipn['option_selection1'] = $_SERVER['HTTP_HOST'];
}
$ipn['option_name2'] = 'Customer IP Address';
$ipn['option_selection2'] = $_SERVER['REMOTE_ADDR'];
$ipn['item_name'] = $cost_calculations['desc'];
$ipn['item_number'] = $post_vars['attr']['sp_ids_exp'];
$ipn['s2member_paypal_proxy'] = 'stripe';
$ipn['s2member_paypal_proxy_use'] = 'pro-emails';
$ipn['s2member_paypal_proxy_coupon'] = array('coupon_code' => $cp_attr['_coupon_code'], 'full_coupon_code' => $cp_attr['_full_coupon_code'], 'affiliate_id' => $cp_attr['_coupon_affiliate_id']);
$ipn['s2member_paypal_proxy_verification'] = c_ws_plugin__s2member_paypal_utilities::paypal_proxy_key_gen();
$ipn['s2member_paypal_proxy_return_url'] = $post_vars['attr']['success'];
$ipn['s2member_stripe_proxy_return_url'] = trim(c_ws_plugin__s2member_utils_urls::remote(home_url('/?s2member_paypal_notify=1'), $ipn, array('timeout' => 20)));
setcookie('s2member_sp_tracking', $s2member_sp_tracking = c_ws_plugin__s2member_utils_encryption::encrypt($new__txn_id), time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie('s2member_sp_tracking', $s2member_sp_tracking, time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN) . ($_COOKIE['s2member_sp_tracking'] = $s2member_sp_tracking);
if ($sp_access_url = c_ws_plugin__s2member_sp_access::sp_access_link_gen($post_vars['attr']['ids'], $post_vars['attr']['exp'])) {
$global_response = array('response' => sprintf(_x('<strong>Thank you.</strong> Your purchase has been approved.<br />— Please <a href="%s" rel="nofollow">click here</a> to proceed.', 's2member-front', 's2member'), esc_attr($sp_access_url)));
if ($post_vars['attr']['success'] && substr($ipn['s2member_stripe_proxy_return_url'], 0, 2) === substr($post_vars['attr']['success'], 0, 2) && ($custom_success_url = str_ireplace(array('%%s_response%%', '%%response%%'), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response['response'])), urlencode($global_response['response'])), $ipn['s2member_stripe_proxy_return_url'])) && ($custom_success_url = trim(preg_replace('/%%(.+?)%%/i', '', $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, 's2p-v')) . exit;
}
} else {
$global_response = array('response' => _x('<strong>Oops.</strong> Unable to generate Access Link. Please contact Support for assistance.', 's2member-front', 's2member'), 'error' => TRUE);
}
}
} else {
// Input form field validation errors.
$global_response = $form_submission_validation_errors;
}
}
}
//.........这里部分代码省略.........
示例4: paypal_checkout
//.........这里部分代码省略.........
$ipn["txn_id"] = $new__subscr_id;
$ipn["period1"] = $period1;
$ipn["period3"] = $period3;
$ipn["mc_amount1"] = $cost_calculations["trial_total"];
$ipn["mc_amount3"] = $cost_calculations["total"];
$ipn["mc_gross"] = preg_match("/^[1-9]/", $ipn["period1"]) ? $ipn["mc_amount1"] : $ipn["mc_amount3"];
$ipn["mc_currency"] = $cost_calculations["cur"];
$ipn["tax"] = $cost_calculations["tax"];
$ipn["recurring"] = $post_vars["attr"]["rr"] ? "1" : "";
$ipn["payer_email"] = $user->user_email;
$ipn["first_name"] = $post_vars["first_name"];
$ipn["last_name"] = $post_vars["last_name"];
$ipn["option_name1"] = "Referencing Customer ID";
$ipn["option_selection1"] = $old__subscr_or_wp_id;
$ipn["option_name2"] = "Customer IP Address";
$ipn["option_selection2"] = $_SERVER["REMOTE_ADDR"];
$ipn["item_name"] = $cost_calculations["desc"];
$ipn["item_number"] = $post_vars["attr"]["level_ccaps_eotper"];
$ipn["s2member_paypal_proxy"] = "paypal";
$ipn["s2member_paypal_proxy_use"] = "pro-emails";
$ipn["s2member_paypal_proxy_use"] .= $ipn["mc_gross"] > 0 ? ",subscr-signup-as-subscr-payment" : "";
$ipn["s2member_paypal_proxy_coupon"] = array("coupon_code" => $cp_attr["_coupon_code"], "full_coupon_code" => $cp_attr["_full_coupon_code"], "affiliate_id" => $cp_attr["_coupon_affiliate_id"]);
$ipn["s2member_paypal_proxy_verification"] = c_ws_plugin__s2member_paypal_utilities::paypal_proxy_key_gen();
$ipn["s2member_paypal_proxy_return_url"] = $post_vars["attr"]["success"];
$ipn["s2member_paypal_proxy_return_url"] = trim(c_ws_plugin__s2member_utils_urls::remote(site_url("/?s2member_paypal_notify=1"), $ipn, array("timeout" => 20)));
}
if ($old__subscr_id) {
// There is an old Recurring Profile?
c_ws_plugin__s2member_pro_paypal_utilities::payflow_cancel_profile($old__subscr_id, $old__baid);
}
setcookie("s2member_tracking", $s2member_tracking = c_ws_plugin__s2member_utils_encryption::encrypt($new__subscr_id), time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie("s2member_tracking", $s2member_tracking, time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN) . ($_COOKIE["s2member_tracking"] = $s2member_tracking);
$global_response = array("response" => sprintf(_x('<strong>Thank you.</strong> Your account has been updated.<br />— Please <a href="%s" rel="nofollow">log back in</a> now.', "s2member-front", "s2member"), esc_attr(wp_login_url())));
if ($post_vars["attr"]["success"] && substr($ipn["s2member_paypal_proxy_return_url"], 0, 2) === substr($post_vars["attr"]["success"], 0, 2) && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $ipn["s2member_paypal_proxy_return_url"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
} else {
$global_response = array("response" => $paypal["__error"], "error" => true);
}
} else {
if ($use_recurring_profile && !is_user_logged_in()) {
$period1 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1($post_vars["attr"]["tp"] . " " . $post_vars["attr"]["tt"]);
$period3 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period3($post_vars["attr"]["rp"] . " " . $post_vars["attr"]["rt"]);
$start_time = $post_vars["attr"]["tp"] ? c_ws_plugin__s2member_pro_paypal_utilities::paypal_start_time($period1) : c_ws_plugin__s2member_pro_paypal_utilities::paypal_start_time($period3);
// Or next billing cycle.
$reference = $start_time . ":" . $period1 . ":" . $period3 . "~" . $_SERVER["HTTP_HOST"] . "~" . $post_vars["attr"]["level_ccaps_eotper"];
if (!($paypal = array())) {
$paypal["TRXTYPE"] = "R";
$paypal["ACTION"] = "A";
$paypal["EMAIL"] = $post_vars["email"];
$paypal["FIRSTNAME"] = $post_vars["first_name"];
$paypal["LASTNAME"] = $post_vars["last_name"];
$paypal["CLIENTIP"] = $_SERVER["REMOTE_ADDR"];
$paypal["PROFILENAME"] = $reference;
$paypal["DESC"] = $cost_calculations["desc"];
if (!$post_vars["attr"]["tp"] || $post_vars["attr"]["tp"] && $cost_calculations["trial_total"] > 0) {
$paypal["OPTIONALTRX"] = "S";
$paypal["OPTIONALTRXAMT"] = $post_vars["attr"]["tp"] ? $cost_calculations["trial_total"] : $cost_calculations["total"];
$paypal["FAILEDOPTIONALTRXACTION"] = "CancelOnFailure";
$paypal["FAILEDINITAMTACTION"] = "CancelOnFailure";
}
$paypal["CURRENCY"] = $cost_calculations["cur"];
$paypal["AMT"] = $cost_calculations["sub_total"];
$paypal["TAXAMT"] = $cost_calculations["tax"];
$paypal["MAXFAILPAYMENTS"] = $post_vars["attr"]["rra"];
$paypal["AUTOBILLOUTSTANDINGAMT"] = apply_filters("ws_plugin__s2member_pro_paypal_auto_bill_op", "AddToNextBilling", get_defined_vars());
$paypal["START"] = date("mdY", $start_time);
示例5: wp_redirect_w_mop_vars
/**
* Redirects to Membership Options Page w/ MOP Vars.
*
* Redirection URLs containing array brackets MUST be URL encoded to get through: ``wp_sanitize_redirect()``.
* So we pass everything to ``urlencode_deep()``, as an array. It handles this via ``_http_build_query()``.
* See bug report here: {@link http://core.trac.wordpress.org/ticket/17052}
*
* @package s2Member\Membership_Options_Page
* @since 111101
*
* @param string $seeking_type Seeking content type. One of: `post|page|catg|ptag|file|ruri`.
* @param string|int $seeking_type_value Seeking content type data. String, or a Post/Page ID.
* @param string $req_type Access requirement type. One of these values: `level|ccap|sp`.
* @param string|int $req_type_value Access requirement. String, or a Post/Page ID.
* @param string $seeking_uri The full URI that access was attempted on.
* @param string $res_type Restriction type that's preventing access.
* One of: `post|page|catg|ptag|file|ruri|ccap|sp|sys`.
* Defaults to ``$seeking_type``.
*
* @return bool This function always returns true.
*/
public static function wp_redirect_w_mop_vars($seeking_type = FALSE, $seeking_type_value = FALSE, $req_type = FALSE, $req_type_value = FALSE, $seeking_uri = FALSE, $res_type = FALSE)
{
do_action("ws_plugin__s2member_before_wp_redirect_w_mop_vars", get_defined_vars());
foreach (array("seeking_type", "seeking_type_value", "req_type", "req_type_value", "seeking_uri", "res_type") as $_param) {
if ($_param === "seeking_uri" || $_param === "seeking_type_value" && $seeking_type === "ruri") {
${$_param} = base64_encode((string) ${$_param});
} else {
${$_param} = str_replace("..", "--", (string) ${$_param});
}
}
unset($_param);
// Housekeeping.
if (!$res_type) {
$res_type = $seeking_type;
}
$vars = $res_type . ".." . $req_type . ".." . $req_type_value . "..";
$vars .= $seeking_type . ".." . $seeking_type_value . ".." . $seeking_uri;
$vars = array("_s2member_vars" => $vars);
$status = apply_filters("ws_plugin__s2member_content_redirect_status", 301, get_defined_vars());
$status = apply_filters("ws_plugin__s2member_wp_redirect_w_mop_vars_status", $status, get_defined_vars());
$mop_url = get_page_link($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["membership_options_page"]);
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["membership_options_page_vars_enable"]) {
$mop_url = add_query_arg(urlencode_deep($vars), $mop_url);
$mop_url = c_ws_plugin__s2member_utils_urls::add_s2member_sig($mop_url);
}
if (!empty($_GET) && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["membership_options_page_ga_vars_enable"]) {
$ga_vars = array();
// Initialize.
foreach (stripslashes_deep($_GET) as $_key => $_value) {
if (strpos($_key, 'utm_') === 0) {
$ga_vars[$_key] = $_value;
}
}
unset($_key, $_value);
// Housekeeping.
$mop_url = add_query_arg(urlencode_deep($ga_vars), $mop_url);
}
wp_redirect($mop_url, $status);
// NOTE: we do not exit here (on purpose).
do_action("ws_plugin__s2member_after_wp_redirect_w_mop_vars", get_defined_vars());
return TRUE;
// Always returns true here.
}
示例6: paypal_checkout
//.........这里部分代码省略.........
/**/
$ipn["payer_email"] = $user->user_email;
$ipn["first_name"] = $post_vars["first_name"];
$ipn["last_name"] = $post_vars["last_name"];
/**/
$ipn["option_name1"] = "Referencing Customer ID";
$ipn["option_selection1"] = $old__subscr_or_wp_id;
/**/
$ipn["option_name2"] = "Customer IP Address";
$ipn["option_selection2"] = $_SERVER["REMOTE_ADDR"];
/**/
$ipn["item_name"] = $cost_calculations["desc"];
$ipn["item_number"] = $post_vars["attr"]["level_ccaps_eotper"];
/**/
$ipn_q = "&s2member_paypal_proxy=paypal&s2member_paypal_proxy_use=pro-emails";
$ipn_q .= $ipn["mc_gross"] > 0 ? ",subscr-signup-as-subscr-payment" : "";
/* Use as first payment? */
$ipn_q .= "&s2member_paypal_proxy_verification=" . urlencode(c_ws_plugin__s2member_paypal_utilities::paypal_proxy_key_gen());
$ipn_q .= "&s2member_paypal_proxy_return_url=" . rawurlencode($post_vars["attr"]["success"]);
/**/
$ipn["s2member_paypal_proxy_return_url"] = trim(c_ws_plugin__s2member_utils_urls::remote(site_url("/?s2member_paypal_notify=1" . $ipn_q), $ipn, array("timeout" => 20)));
}
/**/
if (!($paypal = array()) && ($paypal["PROFILEID"] = $old__subscr_id)) {
$paypal["METHOD"] = "ManageRecurringPaymentsProfileStatus";
$paypal["ACTION"] = "Cancel";
/**/
c_ws_plugin__s2member_paypal_utilities::paypal_api_response($paypal);
}
/**/
$global_response = array("response" => sprintf(_x('<strong>Thank you.</strong> Your account has been updated.<br />— Please <a href="%s" rel="nofollow">log back in</a> now.', "s2member-front", "s2member"), esc_attr(wp_login_url())));
/**/
if ($post_vars["attr"]["success"] && substr($ipn["s2member_paypal_proxy_return_url"], 0, 2) === substr($post_vars["attr"]["success"], 0, 2) && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $ipn["s2member_paypal_proxy_return_url"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
} else {
$global_response = array("response" => $paypal["__error"], "error" => true);
}
} else {
$global_response = array("response" => $_paypal["__error"], "error" => true);
}
} else {
$global_response = array("response" => _x('<strong>Sorry.</strong> Your account is pending other changes. Please try again in 15 minutes.', "s2member-front", "s2member"), "error" => true);
}
} else {
if ($use_recurring_profile && !is_user_logged_in()) {
$period1 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1($post_vars["attr"]["tp"] . " " . $post_vars["attr"]["tt"]);
$period3 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period3($post_vars["attr"]["rp"] . " " . $post_vars["attr"]["rt"]);
/**/
$start_time = $post_vars["attr"]["tp"] ? c_ws_plugin__s2member_pro_paypal_utilities::paypal_start_time($period1) : c_ws_plugin__s2member_pro_paypal_utilities::paypal_start_time($period3);
/* Or next billing cycle. */
/**/
$reference = $start_time . ":" . $period1 . ":" . $period3 . "~" . $_SERVER["HTTP_HOST"] . "~" . $post_vars["attr"]["level_ccaps_eotper"];
/**/
if (!($_paypal = array()) && (!$post_vars["attr"]["tp"] || $post_vars["attr"]["tp"] && $cost_calculations["trial_total"] > 0)) {
if ($_GET["s2member_paypal_xco"] === "s2member_pro_paypal_checkout_return" && !empty($_GET["token"]) && ($_paypal_xco_details = array("METHOD" => "GetExpressCheckoutDetails", "TOKEN" => $_GET["token"])) && ($_paypal_xco_details = c_ws_plugin__s2member_paypal_utilities::paypal_api_response($_paypal_xco_details)) && empty($_paypal_xco_details["__error"])) {
$_paypal["METHOD"] = "DoExpressCheckoutPayment";
/**/
$_paypal["TOKEN"] = $_paypal_xco_details["TOKEN"];
$_paypal["PAYERID"] = $_paypal_xco_details["PAYERID"];
/**/
$_paypal["PAYMENTREQUEST_0_PAYMENTACTION"] = "Sale";
/**/
$_paypal["PAYMENTREQUEST_0_DESC"] = $cost_calculations["desc"];
$_paypal["PAYMENTREQUEST_0_CUSTOM"] = $post_vars["attr"]["custom"];
/**/
示例7: stripe_checkout
//.........这里部分代码省略.........
$ipn['period3'] = $period3;
$ipn['mc_amount1'] = $cost_calculations['trial_total'];
$ipn['mc_amount3'] = $cost_calculations['total'];
$ipn['mc_gross'] = preg_match('/^[1-9]/', $ipn['period1']) ? $ipn['mc_amount1'] : $ipn['mc_amount3'];
$ipn['mc_currency'] = $cost_calculations['cur'];
$ipn['tax'] = $cost_calculations['tax'];
$ipn['recurring'] = $post_vars['attr']['rr'] ? '1' : '';
$ipn['payer_email'] = $user->user_email;
$ipn['first_name'] = $post_vars['first_name'];
$ipn['last_name'] = $post_vars['last_name'];
$ipn['option_name1'] = 'Referencing Customer ID';
$ipn['option_selection1'] = $old__subscr_or_wp_id;
$ipn['option_name2'] = 'Customer IP Address';
$ipn['option_selection2'] = $_SERVER['REMOTE_ADDR'];
$ipn['item_name'] = $cost_calculations['desc'];
$ipn['item_number'] = $post_vars['attr']['level_ccaps_eotper'];
$ipn['s2member_paypal_proxy'] = 'stripe';
$ipn['s2member_paypal_proxy_use'] = 'pro-emails';
$ipn['s2member_paypal_proxy_use'] .= $ipn['mc_gross'] > 0 ? ',subscr-signup-as-subscr-payment' : '';
$ipn['s2member_paypal_proxy_coupon'] = array('coupon_code' => $cp_attr['_coupon_code'], 'full_coupon_code' => $cp_attr['_full_coupon_code'], 'affiliate_id' => $cp_attr['_coupon_affiliate_id']);
$ipn['s2member_paypal_proxy_verification'] = c_ws_plugin__s2member_paypal_utilities::paypal_proxy_key_gen();
$ipn['s2member_paypal_proxy_return_url'] = $post_vars['attr']['success'];
$ipn['s2member_stripe_proxy_return_url'] = trim(c_ws_plugin__s2member_utils_urls::remote(home_url('/?s2member_paypal_notify=1'), $ipn, array('timeout' => 20)));
if (!empty($stripe_subscription_failed_charge_succeeded)) {
update_user_option($user_id, 's2member_auto_eot_time', $start_time);
}
if ($old__subscr_cid && $old__subscr_id && apply_filters('s2member_pro_cancels_old_rp_before_new_rp', TRUE, get_defined_vars())) {
c_ws_plugin__s2member_pro_stripe_utilities::cancel_customer_subscription($old__subscr_cid, $old__subscr_id, FALSE);
}
c_ws_plugin__s2member_list_servers::process_list_servers_against_current_user((bool) @$post_vars['custom_fields']['opt_in'], TRUE, TRUE);
setcookie('s2member_tracking', $s2member_tracking = c_ws_plugin__s2member_utils_encryption::encrypt($new__subscr_id), time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie('s2member_tracking', $s2member_tracking, time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN) . ($_COOKIE['s2member_tracking'] = $s2member_tracking);
$global_response = array('response' => sprintf(_x('<strong>Thank you.</strong> Your account has been updated :-)', 's2member-front', 's2member'), esc_attr(wp_login_url())));
if ($post_vars['attr']['success'] && substr($ipn['s2member_stripe_proxy_return_url'], 0, 2) === substr($post_vars['attr']['success'], 0, 2) && ($custom_success_url = str_ireplace(array('%%s_response%%', '%%response%%'), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response['response'])), urlencode($global_response['response'])), $ipn['s2member_stripe_proxy_return_url'])) && ($custom_success_url = trim(preg_replace('/%%(.+?)%%/i', '', $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, 's2p-v')) . exit;
}
}
} else {
if ($use_subscription && !is_user_logged_in()) {
$plan_attr = $cp_attr;
// For the subscription plan.
$plan_attr['ta'] = $cost_calculations['trial_total'];
$plan_attr['ra'] = $cost_calculations['total'];
$plan_attr['desc'] = $cost_calculations['desc'];
$period1 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1($post_vars['attr']['tp'] . ' ' . $post_vars['attr']['tt']);
$period3 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period3($post_vars['attr']['rp'] . ' ' . $post_vars['attr']['rt']);
$start_time = $post_vars['attr']['tp'] ? c_ws_plugin__s2member_pro_stripe_utilities::start_time($period1) : c_ws_plugin__s2member_pro_stripe_utilities::start_time($period3);
// Or next billing cycle.
if (!$global_response) {
if ($post_vars['attr']['tp'] && $cost_calculations['trial_total'] > 0 || !$post_vars['attr']['tp'] && $cost_calculations['total'] > 0) {
if (!is_object($stripe_customer = c_ws_plugin__s2member_pro_stripe_utilities::get_customer(0, $post_vars['email'], $post_vars['first_name'], $post_vars['last_name'], array(), $post_vars))) {
$global_response = array('response' => $stripe_customer, 'error' => TRUE);
} else {
if (!is_object($stripe_customer = $stripe_customer_with_source = c_ws_plugin__s2member_pro_stripe_utilities::set_customer_source($stripe_customer->id, $post_vars['source_token'], $post_vars, $post_vars['attr']['reject_prepaid']))) {
$global_response = array('response' => $stripe_customer, 'error' => TRUE);
} else {
if (!is_object($stripe_charge = c_ws_plugin__s2member_pro_stripe_utilities::create_customer_charge($stripe_customer->id, $post_vars['attr']['tp'] && $cost_calculations['trial_total'] > 0 ? $cost_calculations['trial_total'] : $cost_calculations['total'], $cost_calculations['cur'], $cost_calculations['desc'], array(), $post_vars, $cost_calculations))) {
$global_response = array('response' => $stripe_charge, 'error' => TRUE);
} else {
$new__txn_cid = $stripe_customer->id;
$new__txn_id = $stripe_charge->id;
}
}
}
}
}
if (!$global_response) {
示例8: paypal_update
/**
* Handles processing of Pro-Form billing updates.
*
* @package s2Member\PayPal
* @since 1.5
*
* @attaches-to ``add_action("init");``
*
* @return null Or exits script execution after a custom URL redirection.
*/
public static function paypal_update()
{
if (!empty($_POST["s2member_pro_paypal_update"]["nonce"]) && ($nonce = $_POST["s2member_pro_paypal_update"]["nonce"]) && wp_verify_nonce($nonce, "s2member-pro-paypal-update")) {
$GLOBALS["ws_plugin__s2member_pro_paypal_update_response"] = array();
// This holds the global response details.
$global_response =& $GLOBALS["ws_plugin__s2member_pro_paypal_update_response"];
// This is a shorter reference.
$post_vars = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST["s2member_pro_paypal_update"]));
$post_vars["attr"] = !empty($post_vars["attr"]) ? (array) unserialize(c_ws_plugin__s2member_utils_encryption::decrypt($post_vars["attr"])) : array();
$post_vars["attr"] = apply_filters("ws_plugin__s2member_pro_paypal_update_post_attr", $post_vars["attr"], get_defined_vars());
$post_vars = c_ws_plugin__s2member_utils_captchas::recaptcha_post_vars($post_vars);
// Collect reCAPTCHA™ post vars.
if (empty($post_vars["card_expiration"]) && isset($post_vars["card_expiration_month"], $post_vars["card_expiration_year"])) {
$post_vars["card_expiration"] = $post_vars["card_expiration_month"] . "/" . $post_vars["card_expiration_year"];
}
if (!c_ws_plugin__s2member_pro_paypal_responses::paypal_form_attr_validation_errors($post_vars["attr"])) {
if (!($error = c_ws_plugin__s2member_pro_paypal_responses::paypal_form_submission_validation_errors("update", $post_vars))) {
if ($post_vars["card_type"] === "PayPal") {
$global_response = array("response" => sprintf(_x('Please <a href="%s" rel="nofollow">log in at PayPal</a> to update your billing information.', "s2member-front", "s2member"), esc_attr("https://" . ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com") . "/")), "error" => true);
} else {
if (is_user_logged_in() && ($user = wp_get_current_user()) && ($user_id = $user->ID)) {
if (($paypal = array("METHOD" => "GetRecurringPaymentsProfileDetails")) && ($paypal["PROFILEID"] = $cur__subscr_id = get_user_option("s2member_subscr_id"))) {
if (($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_api_response($paypal)) && empty($paypal["__error"]) && strlen($paypal["ACCT"]) === 4 && preg_match("/^(Active|ActiveProfile|Suspended|SuspendedProfile)\$/i", $paypal["STATUS"])) {
$paypal = array();
// Reset the PayPal array.
$paypal["METHOD"] = "UpdateRecurringPaymentsProfile";
$paypal["PROFILEID"] = $cur__subscr_id;
$paypal["EMAIL"] = $user->user_email;
$paypal["FIRSTNAME"] = $user->first_name;
$paypal["LASTNAME"] = $user->last_name;
$paypal["CREDITCARDTYPE"] = $post_vars["card_type"];
$paypal["ACCT"] = preg_replace("/[^0-9]/", "", $post_vars["card_number"]);
$paypal["EXPDATE"] = preg_replace("/[^0-9]/", "", $post_vars["card_expiration"]);
$paypal["CVV2"] = $post_vars["card_verification"];
if (in_array($post_vars["card_type"], array("Maestro", "Solo"))) {
if (preg_match("/^[0-9]{2}\\/[0-9]{4}\$/", $post_vars["card_start_date_issue_number"])) {
$paypal["STARTDATE"] = preg_replace("/[^0-9]/", "", $post_vars["card_start_date_issue_number"]);
} else {
// Otherwise, we assume they provided an issue number instead.
$paypal["ISSUENUMBER"] = $post_vars["card_start_date_issue_number"];
}
}
$paypal["STREET"] = $post_vars["street"];
$paypal["CITY"] = $post_vars["city"];
$paypal["STATE"] = $post_vars["state"];
$paypal["COUNTRYCODE"] = $post_vars["country"];
$paypal["ZIP"] = $post_vars["zip"];
if (($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_api_response($paypal)) && empty($paypal["__error"])) {
$global_response = array("response" => _x('<strong>Confirmed.</strong> Your billing information has been updated.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $post_vars["attr"]["success"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
} else {
$global_response = array("response" => $paypal["__error"], "error" => true);
}
} else {
if ($paypal && empty($paypal["__error"]) && strlen($paypal["ACCT"]) === 4 && preg_match("/^(Pending|PendingProfile)\$/i", $paypal["STATUS"])) {
$global_response = array("response" => _x('<strong>Unable to update at this time.</strong> Your account is pending other changes. Please try again in 15 minutes.', "s2member-front", "s2member"), "error" => true);
} else {
if ($paypal && empty($paypal["__error"]) && strlen($paypal["ACCT"]) === 4 && !preg_match("/^(Active|ActiveProfile|Suspended|SuspendedProfile)\$/i", $paypal["STATUS"])) {
$global_response = array("response" => _x('<strong>Unable to update.</strong> You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance.', "s2member-front", "s2member"), "error" => true);
} else {
if ($paypal && empty($paypal["__error"]) && strlen($paypal["ACCT"]) !== 4) {
$global_response = array("response" => sprintf(_x('Please <a href="%s" rel="nofollow">log in at PayPal</a> to update your billing information.', "s2member-front", "s2member"), esc_attr("https://" . ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com") . "/")), "error" => true);
} else {
if ($paypal && !empty($paypal["__error"]) && $paypal["L_ERRORCODE0"] === "11592") {
$global_response = array("response" => sprintf(_x('Please <a href="%s" rel="nofollow">log in at PayPal</a> to update your billing information.', "s2member-front", "s2member"), esc_attr("https://" . ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com") . "/")), "error" => true);
} else {
$global_response = array("response" => $paypal["__error"], "error" => true);
}
}
}
}
}
} else {
$global_response = array("response" => _x('<strong>Oops.</strong> No Subscr. ID. Please contact Support for assistance.', "s2member-front", "s2member"), "error" => true);
}
} else {
$global_response = array("response" => _x('You\'re <strong>NOT</strong> logged in.', "s2member-front", "s2member"), "error" => true);
}
}
} else {
$global_response = $error;
}
}
}
}
示例9: paypal_checkout
//.........这里部分代码省略.........
$ipn["period3"] = $period3;
$ipn["mc_amount1"] = $cost_calculations["trial_total"];
$ipn["mc_amount3"] = $cost_calculations["total"];
$ipn["mc_gross"] = preg_match("/^[1-9]/", $ipn["period1"]) ? $ipn["mc_amount1"] : $ipn["mc_amount3"];
$ipn["mc_currency"] = $cost_calculations["cur"];
$ipn["tax"] = $cost_calculations["tax"];
$ipn["recurring"] = $post_vars["attr"]["rr"] ? "1" : "";
$ipn["payer_email"] = $user->user_email;
$ipn["first_name"] = $post_vars["first_name"];
$ipn["last_name"] = $post_vars["last_name"];
$ipn["option_name1"] = "Referencing Customer ID";
$ipn["option_selection1"] = $old__subscr_or_wp_id;
$ipn["option_name2"] = "Customer IP Address";
$ipn["option_selection2"] = $_SERVER["REMOTE_ADDR"];
$ipn["item_name"] = $cost_calculations["desc"];
$ipn["item_number"] = $post_vars["attr"]["level_ccaps_eotper"];
$ipn["s2member_paypal_proxy"] = "paypal";
$ipn["s2member_paypal_proxy_use"] = "pro-emails";
$ipn["s2member_paypal_proxy_use"] .= $ipn["mc_gross"] > 0 ? ",subscr-signup-as-subscr-payment" : "";
$ipn["s2member_paypal_proxy_coupon"] = array("coupon_code" => $cp_attr["_coupon_code"], "full_coupon_code" => $cp_attr["_full_coupon_code"], "affiliate_id" => $cp_attr["_coupon_affiliate_id"]);
$ipn["s2member_paypal_proxy_verification"] = c_ws_plugin__s2member_paypal_utilities::paypal_proxy_key_gen();
$ipn["s2member_paypal_proxy_return_url"] = $post_vars["attr"]["success"];
$ipn["s2member_paypal_proxy_return_url"] = trim(c_ws_plugin__s2member_utils_urls::remote(home_url("/?s2member_paypal_notify=1"), $ipn, array("timeout" => 20)));
}
if (!($paypal = array()) && ($paypal["PROFILEID"] = $old__subscr_id) && apply_filters("s2member_pro_cancels_old_rp_before_new_rp", TRUE, get_defined_vars())) {
$paypal["METHOD"] = "ManageRecurringPaymentsProfileStatus";
$paypal["ACTION"] = "Cancel";
c_ws_plugin__s2member_paypal_utilities::paypal_api_response($paypal);
}
c_ws_plugin__s2member_list_servers::process_list_servers_against_current_user((bool) @$post_vars["custom_fields"]["opt_in"], TRUE, TRUE);
setcookie("s2member_tracking", $s2member_tracking = c_ws_plugin__s2member_utils_encryption::encrypt($new__subscr_id), time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie("s2member_tracking", $s2member_tracking, time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN) . ($_COOKIE["s2member_tracking"] = $s2member_tracking);
$global_response = array("response" => _x('<strong>Thank you.</strong> Your account has been updated.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && substr($ipn["s2member_paypal_proxy_return_url"], 0, 2) === substr($post_vars["attr"]["success"], 0, 2) && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $ipn["s2member_paypal_proxy_return_url"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
} else {
$global_response = array("response" => $paypal["__error"], "error" => true);
}
} else {
$global_response = array("response" => _x('<strong>Sorry.</strong> Your account is pending other changes. Please try again in 15 minutes.', "s2member-front", "s2member"), "error" => true);
}
} else {
if ($use_recurring_profile && !is_user_logged_in()) {
$period1 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1($post_vars["attr"]["tp"] . " " . $post_vars["attr"]["tt"]);
$period3 = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period3($post_vars["attr"]["rp"] . " " . $post_vars["attr"]["rt"]);
$start_time = $post_vars["attr"]["tp"] ? c_ws_plugin__s2member_pro_paypal_utilities::paypal_start_time($period1) : c_ws_plugin__s2member_pro_paypal_utilities::paypal_start_time($period3);
$reference = $start_time . ":" . $period1 . ":" . $period3 . "~" . $_SERVER["HTTP_HOST"] . "~" . $post_vars["attr"]["level_ccaps_eotper"];
if (!($paypal = array())) {
$paypal["METHOD"] = "CreateRecurringPaymentsProfile";
$paypal["EMAIL"] = $post_vars["email"];
$paypal["FIRSTNAME"] = $post_vars["first_name"];
$paypal["LASTNAME"] = $post_vars["last_name"];
$paypal["SUBSCRIBERNAME"] = $post_vars["name"];
$paypal["DESC"] = $cost_calculations["desc"];
$paypal["PROFILEREFERENCE"] = $reference;
if (!$post_vars["attr"]["tp"] || $post_vars["attr"]["tp"] && $cost_calculations["trial_total"] > 0) {
$paypal["INITAMT"] = $post_vars["attr"]["tp"] ? $cost_calculations["trial_total"] : $cost_calculations["total"];
$paypal["FAILEDINITAMTACTION"] = "CancelOnFailure";
}
$paypal["CURRENCYCODE"] = $cost_calculations["cur"];
$paypal["AMT"] = $cost_calculations["sub_total"];
$paypal["TAXAMT"] = $cost_calculations["tax"];
$paypal["MAXFAILEDPAYMENTS"] = $post_vars["attr"]["rra"];
$paypal["AUTOBILLOUTAMT"] = apply_filters("ws_plugin__s2member_pro_paypal_auto_bill_op", "AddToNextBilling", get_defined_vars());
$paypal["PROFILESTARTDATE"] = date("Y-m-d", $start_time) . "T00:00:00Z";
$paypal["BILLINGPERIOD"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_term($post_vars["attr"]["rt"]);
示例10: alipay_return
/**
* Handles AliPay Return URL processing.
*
* @package s2Member\AliPay
* @since 1.5
*
* @attaches-to ``add_action("init");``
*
* @return null Or exits script execution after redirection.
*/
public static function alipay_return()
{
global $current_site, $current_blog;
if (!empty($_GET["s2member_pro_alipay_return"]) && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_alipay_seller_email"]) {
if (is_array($alipay = c_ws_plugin__s2member_pro_alipay_utilities::alipay_postvars()) && ($_alipay = $alipay)) {
$alipay["s2member_log"][] = "Return-Data received on: " . date("D M j, Y g:i:s a T");
$alipay["s2member_log"][] = "s2Member POST vars verified through a POST back to AliPay.";
if (preg_match("/^(TRADE_FINISHED|TRADE_SUCCESS)\$/i", $alipay["trade_status"]) && !$alipay["refund_status"]) {
$alipay["s2member_log"][] = "AliPay transaction identified as ( `TRADE_FINISHED|TRADE_SUCCESS` ).";
$alipay["s2member_log"][] = "Return-Data reformulated. Piping through s2Member's core/standard PayPal processor as `txn_type` ( `web_accept` ).";
$alipay["s2member_log"][] = "Please check PayPal RTN logs for further processing details.";
list($alipay["invoice"], $alipay["item_number"], $alipay["referencing"], $alipay["customer_ip"]) = preg_split("/~/", $alipay["out_trade_no"]);
list($alipay["first_name"], $alipay["last_name"]) = preg_split("/@/", $alipay["buyer_email"], 2);
$rtn = array();
$rtn["txn_type"] = "web_accept";
$rtn["txn_id"] = $alipay["trade_no"];
$rtn["custom"] = $alipay["extra_common_param"];
$rtn["mc_gross"] = number_format($alipay["total_fee"], 2, ".", "");
$rtn["mc_currency"] = "CNY";
// Yuan.
$rtn["tax"] = "0";
// No tax.
$rtn["payer_email"] = $alipay["buyer_email"];
$rtn["first_name"] = $alipay["first_name"];
$rtn["last_name"] = $alipay["last_name"];
$rtn["option_name1"] = $alipay["referencing"] ? "Referencing Customer ID" : "Originating Domain";
$rtn["option_selection1"] = $alipay["referencing"] ? $alipay["referencing"] : $_SERVER["HTTP_HOST"];
$rtn["option_name2"] = "Customer IP Address";
$rtn["option_selection2"] = $alipay["customer_ip"];
$rtn["item_number"] = $alipay["item_number"];
$rtn["item_name"] = $alipay["body"];
$rtn_q = "&s2member_paypal_proxy=alipay&s2member_paypal_proxy_use=standard-emails";
if (!empty($_GET["s2member_pro_alipay_return_success"])) {
$rtn_q .= "&s2member_paypal_return_success=" . rawurlencode(trim(stripslashes($_GET["s2member_pro_alipay_return_success"])));
}
$rtn_r = add_query_arg(urlencode_deep($rtn), site_url("/?s2member_pro_alipay_return&s2member_paypal_return=1" . $rtn_q));
$rtn_r = c_ws_plugin__s2member_utils_urls::add_s2member_sig($rtn_r, "s2member_paypal_proxy_verification");
$alipay["s2member_log"][] = $rtn_r;
wp_redirect($rtn_r);
} else {
$alipay["s2member_log"][] = "Unexpected status. The AliPay status did not match a required action.";
$alipay["s2member_log"][] = "Redirecting Customer to the Home Page, due to an error that occurred.";
echo '<script type="text/javascript">' . "\n";
echo "alert('" . c_ws_plugin__s2member_utils_strings::esc_js_sq(_x("ERROR: Unexpected status. Please contact Support for assistance.\n\nThe AliPay status did NOT match a required action.", "s2member-front", "s2member")) . "');" . "\n";
echo "window.location = '" . c_ws_plugin__s2member_utils_strings::esc_js_sq(home_url("/")) . "';";
echo '</script>' . "\n";
}
} else {
$alipay["s2member_log"][] = "Unable to verify POST vars. This is most likely related to an invalid AliPay configuration. Please check: s2Member -› AliPay Options.";
$alipay["s2member_log"][] = "If you're absolutely SURE that your AliPay configuration is valid, you may want to run some tests on your server, just to be sure \$_POST variables are populated, and that your server is able to connect to AliPay over an HTTPS connection.";
$alipay["s2member_log"][] = "s2Member uses the WP_Http class for remote connections; which will try to use cURL first, and then fall back on the FOPEN method when cURL is not available. On a Windows server, you may have to disable your cURL extension. Instead, set allow_url_fopen = yes in your php.ini file. The cURL extension (usually) does NOT support SSL connections on a Windows server.";
$alipay["s2member_log"][] = var_export($_REQUEST, true);
// Recording _POST + _GET vars for analysis and debugging.
$alipay["s2member_log"][] = "Redirecting Customer to the Home Page, due to an error that occurred.";
echo '<script type="text/javascript">' . "\n";
echo "alert('" . c_ws_plugin__s2member_utils_strings::esc_js_sq(_x("ERROR: Unable to verify POST vars. Please contact Support for assistance.\n\nThis is most likely related to an invalid AliPay configuration. If you are the site owner, please check: s2Member -› AliPay Options.", "s2member-front", "s2member")) . "');" . "\n";
echo "window.location = '" . c_ws_plugin__s2member_utils_strings::esc_js_sq(home_url("/")) . "';";
echo '</script>' . "\n";
}
$logt = c_ws_plugin__s2member_utilities::time_details();
$logv = c_ws_plugin__s2member_utilities::ver_details();
$logm = c_ws_plugin__s2member_utilities::mem_details();
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
$log4 = is_multisite() && !is_main_site() ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
$log2 = is_multisite() && !is_main_site() ? "alipay-rtn-4-" . trim(preg_replace("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "alipay-rtn.log";
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"]) {
if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"])) {
if (is_writable($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files()) {
file_put_contents($logs_dir . "/" . $log2, "LOG ENTRY: " . $logt . "\n" . $logv . "\n" . $logm . "\n" . $log4 . "\n" . c_ws_plugin__s2member_utils_logs::conceal_private_info(var_export($alipay, true)) . "\n\n", FILE_APPEND);
}
}
}
exit;
// Exit now.
}
}
示例11: sc_get_stream
//.........这里部分代码省略.........
if ($file_download_urls && $attr['player'] && is_file($template = dirname(dirname(__FILE__)) . '/templates/players/' . $attr['player'] . '.php') && $attr['player_id'] && $attr['player_path']) {
$template = is_file(TEMPLATEPATH . '/' . basename($template)) ? TEMPLATEPATH . '/' . basename($template) : $template;
$template = is_file(get_stylesheet_directory() . '/' . basename($template)) ? get_stylesheet_directory() . '/' . basename($template) : $template;
$template = is_file(WP_CONTENT_DIR . '/' . basename($template)) ? WP_CONTENT_DIR . '/' . basename($template) : $template;
if (strpos($attr['player'], 'jwplayer-v6') === 0) {
$player = trim(c_ws_plugin__s2member_utilities::evl(file_get_contents($template)));
$_first_file_download_url = array();
// Holds the first one.
$_last_file_download_url = array();
// Holds the last one.
$_uses_rtmp_streamers = FALSE;
// Streamers use RTMP?
$_total_player_sources = count($file_download_urls);
// Total sources.
$_player_sources_counter = 1;
// Player sources counter; needed by the loop below.
$player_resolution_aspect_ratio_w = 16;
// Default aspect ratio width.
$player_resolution_aspect_ratio_h = 9;
// Default aspect ratio in height.
if ($attr['player_aspectratio'] && preg_match('/^[0-9]+\\:[0-9]+$/', $attr['player_aspectratio'])) {
list($player_resolution_aspect_ratio_w, $player_resolution_aspect_ratio_h) = explode(':', $attr['player_aspectratio']);
}
$player_resolution_aspect_ratio_w = (int) $player_resolution_aspect_ratio_w;
// Force integer value.
$player_resolution_aspect_ratio_h = (int) $player_resolution_aspect_ratio_h;
// Force integer value.
// See: <http://wsharks.com/1yzjAl6> and <http://wsharks.com/1yzkhea> regarging the SMIL bitrate hints given here.
$player_resolution_bitrates = array(2160 => '35000000', 1440 => '10000000', 1080 => '8000000', 720 => '5000000', 640 => '2500001', 480 => '2500000', 360 => '1000000', 320 => '999999', 240 => '500000', 180 => '300000');
$player_resolution_bitrates = apply_filters('ws_plugin__s2member_sc_get_stream_resolution_bitrates', $player_resolution_bitrates, get_defined_vars());
$player_resolution_sources_smil_file_id = md5(serialize($attr) . $_SERVER['REMOTE_ADDR']);
// Initialize SMIL ID.
$player_resolution_sources_smil_file_url = home_url('/s2member-rsf-file.smil?s2member_rsf_file=' . urlencode($player_resolution_sources_smil_file_id) . '&s2member_rsf_file_ip=' . urlencode($_SERVER['REMOTE_ADDR']));
$player_resolution_sources_smil_file_url = c_ws_plugin__s2member_utils_urls::add_s2member_sig($player_resolution_sources_smil_file_url);
$player_resolution_sources_smil_file_contents = '';
// Initialize player sources SMIL file contents.
$player_sources = '';
// Initialize player sources; empty string.
foreach ($file_download_urls as $_file_download_url_label => $_file_download_url) {
$_is_first_file_download_url = $_player_sources_counter <= 1;
$_is_last_file_download_url = $_player_sources_counter >= $_total_player_sources;
if ($_is_first_file_download_url) {
// We base this conditional on the first streamer.
$_uses_rtmp_streamers = stripos($_file_download_url['streamer'], 'rtmp') === 0;
}
switch ($attr['player']) {
case 'jwplayer-v6':
// Default w/ a direct URL (very simple).
$player_sources .= ',{';
// Open this source; JSON object properties.
$player_sources .= "'file': '" . c_ws_plugin__s2member_utils_strings::esc_js_sq($_file_download_url['url']) . "'";
if (is_string($_file_download_url_label)) {
$player_sources .= ",'label': '" . c_ws_plugin__s2member_utils_strings::esc_js_sq($_file_download_url_label) . "'";
}
if ($_is_first_file_download_url) {
$player_sources .= ",'default': 'true'";
}
$player_sources .= '}';
// Close this source.
break;
// Break switch loop.
// Break switch loop.
case 'jwplayer-v6-rtmp':
// RTMP w/ downloadable fallback (mobile compatibility).
// RTMP w/ downloadable fallback (mobile compatibility).
case 'jwplayer-v6-rtmp-only':
示例12: stripe_registration
/**
* Handles processing of Pro-Form registrations.
*
* @package s2Member\Stripe
* @since 140617
*
* @attaches-to ``add_action('init');``
*/
public static function stripe_registration()
{
if (!empty($_POST['s2member_pro_stripe_registration']['nonce']) && ($nonce = $_POST['s2member_pro_stripe_registration']['nonce']) && wp_verify_nonce($nonce, 's2member-pro-stripe-registration')) {
$GLOBALS['ws_plugin__s2member_pro_stripe_registration_response'] = array();
// This holds the global response details.
$global_response =& $GLOBALS['ws_plugin__s2member_pro_stripe_registration_response'];
$post_vars = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST['s2member_pro_stripe_registration']));
$post_vars['attr'] = !empty($post_vars['attr']) ? (array) unserialize(c_ws_plugin__s2member_utils_encryption::decrypt($post_vars['attr'])) : array();
$post_vars['attr'] = apply_filters('ws_plugin__s2member_pro_stripe_registration_post_attr', $post_vars['attr'], get_defined_vars());
$post_vars['name'] = trim($post_vars['first_name'] . ' ' . $post_vars['last_name']);
$post_vars['email'] = apply_filters('user_registration_email', sanitize_email($post_vars['email']), get_defined_vars());
$post_vars['username'] = is_multisite() ? strtolower($post_vars['username']) : $post_vars['username'];
// Force lowercase.
$post_vars['username'] = sanitize_user($post_vars['_o_username'] = $post_vars['username'], is_multisite());
$post_vars = c_ws_plugin__s2member_utils_captchas::recaptcha_post_vars($post_vars);
// Collect reCAPTCHA™ post vars.
if (!c_ws_plugin__s2member_pro_stripe_responses::stripe_form_attr_validation_errors($post_vars['attr'])) {
if (!($form_submission_validation_errors = c_ws_plugin__s2member_pro_stripe_responses::stripe_form_submission_validation_errors('registration', $post_vars))) {
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_user_pass1'] = $post_vars['password1'];
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_first_name'] = $post_vars['first_name'];
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_last_name'] = $post_vars['last_name'];
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_opt_in'] = @$post_vars['custom_fields']['opt_in'];
if ($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields']) {
foreach (json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], TRUE) as $field) {
$field_var = preg_replace('/[^a-z0-9]/i', '_', strtolower($field['id']));
$field_id_class = preg_replace('/_/', '-', $field_var);
if (isset($post_vars['custom_fields'][$field_var])) {
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_' . $field_var] = $post_vars['custom_fields'][$field_var];
}
}
}
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_s2member_level'] = $post_vars['attr']['level'];
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_s2member_ccaps'] = $post_vars['attr']['ccaps'];
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_s2member_custom'] = $post_vars['attr']['custom'];
$GLOBALS['ws_plugin__s2member_registration_vars']['ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time'] = $post_vars['attr']['tp'] && $post_vars['attr']['tt'] ? date('Y-m-d H:i:s', c_ws_plugin__s2member_utils_time::auto_eot_time('', '', '', $post_vars['attr']['tp'] . ' ' . $post_vars['attr']['tt'])) : '';
$GLOBALS['ws_plugin__s2member_registration_return_url'] = $post_vars['attr']['success'];
$create_user['user_email'] = $post_vars['email'];
// Copy this into a separate array for `wp_create_user()`.
$create_user['user_login'] = $post_vars['username'];
// Copy this into a separate array for `wp_create_user()`.
$create_user['user_pass'] = c_ws_plugin__s2member_registrations::maybe_custom_pass($post_vars["password1"]);
$has_custom_password = $post_vars['password1'] && $post_vars['password1'] === $create_user['user_pass'];
if ((is_multisite() && ($new__user_id = c_ws_plugin__s2member_registrations::ms_create_existing_user($create_user['user_login'], $create_user['user_email'], $create_user['user_pass'])) || ($new__user_id = wp_create_user($create_user['user_login'], $create_user['user_pass'], $create_user['user_email']))) && !is_wp_error($new__user_id)) {
update_user_option($new__user_id, 'default_password_nag', $has_custom_password ? FALSE : TRUE, TRUE);
if (version_compare(get_bloginfo("version"), "4.3.1", ">=")) {
wp_new_user_notification($new__user_id, null, $has_custom_password ? "admin" : "both", $create_user['user_pass']);
} else {
if (version_compare(get_bloginfo("version"), "4.3", ">=")) {
wp_new_user_notification($new__user_id, $has_custom_password ? "admin" : "both", $create_user['user_pass']);
} else {
wp_new_user_notification($new__user_id, $create_user['user_pass']);
}
}
if ($has_custom_password) {
$global_response = array('response' => sprintf(_x('<strong>Thank you.</strong> Please <a href="%s" rel="nofollow">log in</a>.', 's2member-front', 's2member'), esc_attr(wp_login_url())));
} else {
$global_response = array('response' => _x('<strong>Thank you.</strong> You\'ll receive an email momentarily.', 's2member-front', 's2member'));
}
if ($post_vars['attr']['success'] && substr($GLOBALS['ws_plugin__s2member_registration_return_url'], 0, 2) === substr($post_vars['attr']['success'], 0, 2) && ($custom_success_url = str_ireplace(array('%%s_response%%', '%%response%%'), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response['response'])), urlencode($global_response['response'])), $GLOBALS['ws_plugin__s2member_registration_return_url'])) && ($custom_success_url = trim(preg_replace('/%%(.+?)%%/i', '', $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, 's2p-v')) . exit;
}
} else {
$global_response = array('response' => _x('<strong>Oops.</strong> A slight problem. Please contact Support for assistance.', 's2member-front', 's2member'), 'error' => TRUE);
}
} else {
// Input form field validation errors.
$global_response = $form_submission_validation_errors;
}
}
}
}
示例13: paypal_update
/**
* Handles processing of Pro Form billing updates.
*
* @package s2Member\PayPal
* @since 1.5
*
* @attaches-to ``add_action("init");``
*
* @return null Or exits script execution after a custom URL redirection.
*/
public static function paypal_update()
{
if (!empty($_POST["s2member_pro_paypal_update"]["nonce"]) && ($nonce = $_POST["s2member_pro_paypal_update"]["nonce"]) && wp_verify_nonce($nonce, "s2member-pro-paypal-update")) {
$GLOBALS["ws_plugin__s2member_pro_paypal_update_response"] = array();
// This holds the global response details.
$global_response =& $GLOBALS["ws_plugin__s2member_pro_paypal_update_response"];
// This is a shorter reference.
$post_vars = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST["s2member_pro_paypal_update"]));
$post_vars["attr"] = unserialize(c_ws_plugin__s2member_utils_encryption::decrypt($post_vars["attr"]));
// And run a Filter.
$post_vars["attr"] = apply_filters("ws_plugin__s2member_pro_paypal_update_post_attr", $post_vars["attr"], get_defined_vars());
$post_vars["recaptcha_challenge_field"] = !$post_vars["recaptcha_challenge_field"] ? trim(stripslashes($_POST["recaptcha_challenge_field"])) : $post_vars["recaptcha_challenge_field"];
$post_vars["recaptcha_response_field"] = !$post_vars["recaptcha_response_field"] ? trim(stripslashes($_POST["recaptcha_response_field"])) : $post_vars["recaptcha_response_field"];
if (empty($post_vars["card_expiration"]) && isset($post_vars["card_expiration_month"], $post_vars["card_expiration_year"])) {
$post_vars["card_expiration"] = $post_vars["card_expiration_month"] . "/" . $post_vars["card_expiration_year"];
}
if (!c_ws_plugin__s2member_pro_paypal_responses::paypal_form_attr_validation_errors($post_vars["attr"])) {
if (!($error = c_ws_plugin__s2member_pro_paypal_responses::paypal_form_submission_validation_errors("update", $post_vars))) {
if ($post_vars["card_type"] === "PayPal") {
$global_response = array("response" => sprintf(_x('Please <a href="%s" rel="nofollow">log in at PayPal</a> to update your billing information.', "s2member-front", "s2member"), esc_attr("https://" . ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com") . "/")), "error" => true);
} else {
if (is_user_logged_in() && ($user = wp_get_current_user()) && ($user_id = $user->ID)) {
if ($cur__subscr_id = get_user_option("s2member_subscr_id")) {
if (($paypal = c_ws_plugin__s2member_pro_paypal_utilities::payflow_get_profile($cur__subscr_id)) && $paypal["TENDER"] !== "P" && preg_match("/^(Active|ActiveProfile)\$/i", $paypal["STATUS"])) {
$paypal = array();
// Reset the PayPal array.
$paypal["TRXTYPE"] = "R";
$paypal["ACTION"] = "M";
$paypal["ORIGPROFILEID"] = $cur__subscr_id;
$paypal["EMAIL"] = $user->user_email;
$paypal["FIRSTNAME"] = $user->first_name;
$paypal["LASTNAME"] = $user->last_name;
$paypal["TENDER"] = "C";
$paypal["ACCT"] = preg_replace("/[^0-9]/", "", $post_vars["card_number"]);
if (preg_match("/^(?P<month>[0-9]{2})\\/[0-9]{2}(?P<year_suffix>[0-9]{2})\$/", $post_vars["card_expiration"], $_m)) {
$paypal["EXPDATE"] = $_m["month"] . $_m["year_suffix"];
}
$paypal["CVV2"] = $post_vars["card_verification"];
if (in_array($post_vars["card_type"], array("Maestro", "Solo"))) {
if (preg_match("/^(?P<month>[0-9]{2})\\/[0-9]{2}(?P<year>[0-9]{2})\$/", $post_vars["card_start_date_issue_number"], $_m)) {
$paypal["CARDSTART"] = $_m["month"] . $_m["year"];
} else {
$paypal["CARDISSUE"] = $post_vars["card_start_date_issue_number"];
}
unset($_m);
}
$paypal["STREET"] = $post_vars["street"];
$paypal["CITY"] = $post_vars["city"];
$paypal["STATE"] = $post_vars["state"];
$paypal["COUNTRY"] = $post_vars["country"];
$paypal["ZIP"] = $post_vars["zip"];
if (($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_payflow_api_response($paypal)) && empty($paypal["__error"])) {
$global_response = array("response" => _x('<strong>Confirmed.</strong> Your billing information has been updated.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $post_vars["attr"]["success"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
} else {
$global_response = array("response" => $paypal["__error"], "error" => true);
}
} else {
if ($paypal && $paypal["TENDER"] !== "P" && !preg_match("/^(Active|ActiveProfile)\$/i", $paypal["STATUS"])) {
$global_response = array("response" => _x('<strong>Unable to update.</strong> You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance.', "s2member-front", "s2member"), "error" => true);
} else {
if ($paypal && $paypal["TENDER"] === "P") {
$global_response = array("response" => sprintf(_x('Please <a href="%s" rel="nofollow">log in at PayPal</a> to update your billing information.', "s2member-front", "s2member"), esc_attr("https://" . ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com") . "/")), "error" => true);
} else {
$global_response = array("response" => _x('<strong>Unknown error.</strong> Please contact Support for assistance.', "s2member-front", "s2member"), "error" => true);
}
}
}
} else {
$global_response = array("response" => _x('<strong>No Subscr. ID.</strong> Please contact Support for assistance.', "s2member-front", "s2member"), "error" => true);
}
} else {
$global_response = array("response" => _x('You\'re <strong>NOT</strong> logged in.', "s2member-front", "s2member"), "error" => true);
}
}
} else {
$global_response = $error;
}
}
}
}
示例14: clickbank_return
/**
* Handles ClickBank Return URL processing.
*
* @package s2Member\ClickBank
* @since 1.5
*
* @attaches-to ``add_action('init');``
*/
public static function clickbank_return()
{
global $current_site, $current_blog;
// For Multisite support.
if (!empty($_GET['s2member_pro_clickbank_return']) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['pro_clickbank_username']) {
if (is_array($clickbank = c_ws_plugin__s2member_pro_clickbank_utilities::clickbank_postvars_v2_1()) && ($_clickbank = $clickbank)) {
$clickbank['s2member_log'][] = 'Return-Data received on: ' . date('D M j, Y g:i:s a T');
$clickbank['s2member_log'][] = 's2Member POST vars verified with ClickBank.';
$clickbank['s2member_log'][] = 'Sleeping for 5 seconds. Giving ClickBank a chance to finalize processing.';
sleep(5);
// Sleep here to give ClickBank a chance to finalize processing. Allows the API call to succeed.
$clickbank['s2member_log'][] = 'Awake. It\'s ' . date('D M j, Y g:i:s a T') . '. Processing will continue.';
if (is_array($order = json_decode(c_ws_plugin__s2member_utils_urls::remote('https://api.clickbank.com/rest/1.3/orders/' . $clickbank['cbreceipt'], FALSE, array_merge(c_ws_plugin__s2member_pro_clickbank_utilities::clickbank_api_headers(), array('timeout' => 20))), TRUE)) && ($order = $order['orderData'])) {
if (is_array($order) && isset($order[0]) && is_array($order[0])) {
$order = $order[0];
}
// If there is more than one, we only want the first one.
foreach ($order as $_k => &$_v) {
if (is_array($_v) && isset($_v['@nil'])) {
$_v = NULL;
}
}
// Nullify properly.
unset($_k, $_v);
// Housekeeping.
$clickbank['s2member_log'][] = 'Order API variables have been obtained from ClickBank.';
$s2vars = c_ws_plugin__s2member_pro_clickbank_utilities::clickbank_parse_s2vars_v2_1(http_build_query($clickbank, NULL, '&'), $order['txnType']);
if (!empty($s2vars['s2_p1']) && !empty($s2vars['s2_p3']) && $s2vars['s2_p1'] === '0 D') {
// Initial Period. No Trial defaults to Regular Period.
$s2vars['s2_p1'] = $s2vars['s2_p3'];
}
$clickbank['s2vars'] = $s2vars;
// So they appear in the log entry for this Notification.
if (strcasecmp($order['firstName'] . ' ' . $order['lastName'], $order['customerDisplayName']) !== 0 && preg_match('/([^ ]+)( +)([^ ]+)/', $order['customerDisplayName'])) {
list($order['firstName'], $order['lastName']) = preg_split('/ +/', $order['customerDisplayName'], 2);
}
if (preg_match('/^(TEST_)?SALE$/i', $order['txnType']) && empty($s2vars['s2_p1']) && empty($s2vars['s2_p3'])) {
$clickbank['s2member_log'][] = 'ClickBank transaction identified as (`SALE/STANDARD`).';
$clickbank['s2member_log'][] = 'Return-Data reformulated. Piping through s2Member\'s core/standard PayPal processor as `txn_type` (`web_accept`).';
$clickbank['s2member_log'][] = 'Please check PayPal RTN logs for further processing details.';
$rtn = array();
// Reset.
$rtn['txn_type'] = 'web_accept';
$rtn['txn_id'] = $order['receipt'];
$rtn['custom'] = $s2vars['s2_custom'];
$rtn['mc_gross'] = number_format($order['amount'], 2, '.', '');
$rtn['mc_currency'] = strtoupper($order['currency']);
$rtn['tax'] = '0.00';
// No tax.
$rtn['payer_email'] = $order['email'];
$rtn['first_name'] = ucwords(strtolower($order['firstName']));
$rtn['last_name'] = ucwords(strtolower($order['lastName']));
$rtn['option_name1'] = !empty($s2vars['s2_referencing']) ? 'Referencing Customer ID' : 'Originating Domain';
$rtn['option_selection1'] = !empty($s2vars['s2_referencing']) ? $s2vars['s2_referencing'] : $_SERVER['HTTP_HOST'];
$rtn['option_name2'] = 'Customer IP Address';
$rtn['option_selection2'] = $s2vars['s2_customer_ip'];
$rtn['item_number'] = $s2vars['s2_invoice'];
$rtn['item_name'] = $s2vars['s2_desc'];
$rtn_q = '&s2member_paypal_proxy=clickbank&s2member_paypal_proxy_use=standard-emails';
if (!empty($_GET['s2member_pro_clickbank_return_success'])) {
// Using a custom Return URL on success?
$rtn_q .= '&s2member_paypal_return_success=' . rawurlencode(trim(stripslashes($_GET['s2member_pro_clickbank_return_success'])));
}
$rtn_r = add_query_arg(urlencode_deep($rtn), home_url('/?s2member_pro_clickbank_return&s2member_paypal_return=1' . $rtn_q));
$rtn_r = c_ws_plugin__s2member_utils_urls::add_s2member_sig($rtn_r, 's2member_paypal_proxy_verification');
$clickbank['s2member_log'][] = $rtn_r;
// Log the full Return redirection URL here.
wp_redirect($rtn_r);
// Proxy this through s2Member's core PayPal processor.
} else {
if (preg_match('/^(TEST_)?SALE$/i', $order['txnType']) && !empty($s2vars['s2_p1']) && !empty($s2vars['s2_p3'])) {
$clickbank['s2member_log'][] = 'ClickBank transaction identified as (`SALE/RECURRING`).';
$clickbank['s2member_log'][] = 'Return-Data reformulated. Piping through s2Member\'s core/standard PayPal processor as `txn_type` (`subscr_signup`).';
$clickbank['s2member_log'][] = 'Please check PayPal RTN logs for further processing details.';
$rtn = array();
// Reset.
$rtn['txn_type'] = 'subscr_signup';
$rtn['subscr_id'] = $s2vars['s2_subscr_id'];
$rtn['recurring'] = $order['futurePayments'] > 1 ? '1' : '0';
$rtn['txn_id'] = $order['receipt'];
$rtn['custom'] = $s2vars['s2_custom'];
$rtn['period1'] = $s2vars['s2_p1'];
$rtn['period3'] = $s2vars['s2_p3'];
$rtn['mc_amount1'] = number_format($order['amount'], 2, '.', '');
$rtn['mc_amount3'] = @number_format($order['rebillAmount'], 2, '.', '');
$rtn['mc_currency'] = strtoupper($order['currency']);
$rtn['tax'] = '0.00';
// No tax.
$rtn['payer_email'] = $order['email'];
$rtn['first_name'] = ucwords(strtolower($order['firstName']));
$rtn['last_name'] = ucwords(strtolower($order['lastName']));
$rtn['option_name1'] = !empty($s2vars['s2_referencing']) ? 'Referencing Customer ID' : 'Originating Domain';
//.........这里部分代码省略.........
示例15: paypal_cancellation
/**
* Handles processing of Pro-Form cancellations.
*
* @package s2Member\PayPal
* @since 1.5
*
* @attaches-to ``add_action("init");``
*
* @return null Or exits script execution after a custom URL redirection.
*/
public static function paypal_cancellation()
{
if (!empty($_POST["s2member_pro_paypal_cancellation"]["nonce"]) && ($nonce = $_POST["s2member_pro_paypal_cancellation"]["nonce"]) && wp_verify_nonce($nonce, "s2member-pro-paypal-cancellation")) {
$GLOBALS["ws_plugin__s2member_pro_paypal_cancellation_response"] = array();
// This holds the global response details.
$global_response =& $GLOBALS["ws_plugin__s2member_pro_paypal_cancellation_response"];
// This is a shorter reference.
$post_vars = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST["s2member_pro_paypal_cancellation"]));
$post_vars["attr"] = !empty($post_vars["attr"]) ? (array) unserialize(c_ws_plugin__s2member_utils_encryption::decrypt($post_vars["attr"])) : array();
$post_vars["attr"] = apply_filters("ws_plugin__s2member_pro_paypal_cancellation_post_attr", $post_vars["attr"], get_defined_vars());
$post_vars = c_ws_plugin__s2member_utils_captchas::recaptcha_post_vars($post_vars);
// Collect reCAPTCHA™ post vars.
if (!c_ws_plugin__s2member_pro_paypal_responses::paypal_form_attr_validation_errors($post_vars["attr"])) {
if (!($error = c_ws_plugin__s2member_pro_paypal_responses::paypal_form_submission_validation_errors("cancellation", $post_vars))) {
if (is_user_logged_in() && is_object($user = wp_get_current_user()) && ($user_id = $user->ID)) {
if (($paypal = array("METHOD" => "GetRecurringPaymentsProfileDetails")) && ($paypal["PROFILEID"] = $cur__subscr_id = get_user_option("s2member_subscr_id"))) {
if (($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_api_response($paypal)) && empty($paypal["__error"])) {
if (preg_match("/^(Active|ActiveProfile|Suspended|SuspendedProfile)\$/i", $paypal["STATUS"])) {
if (!($ipn = array())) {
$ipn["txn_type"] = "subscr_cancel";
$ipn["subscr_id"] = $paypal["PROFILEID"];
$ipn["custom"] = get_user_option("s2member_custom");
$ipn["period1"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1($paypal);
$ipn["period3"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period3($paypal);
$ipn["payer_email"] = $paypal["EMAIL"];
$ipn["first_name"] = $paypal["FIRSTNAME"];
$ipn["last_name"] = $paypal["LASTNAME"];
$ipn["option_name1"] = "Referencing Customer ID";
$ipn["option_selection1"] = $paypal["PROFILEID"];
$ipn["option_name2"] = "Customer IP Address";
// IP Address.
$ipn["option_selection2"] = get_user_option("s2member_registration_ip");
$ipn["item_name"] = $paypal["DESC"];
$ipn["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number($paypal);
$ipn["s2member_paypal_proxy"] = "paypal";
$ipn["s2member_paypal_proxy_use"] = "pro-emails";
$ipn["s2member_paypal_proxy_verification"] = c_ws_plugin__s2member_paypal_utilities::paypal_proxy_key_gen();
c_ws_plugin__s2member_utils_urls::remote(home_url("/?s2member_paypal_notify=1"), $ipn, array("timeout" => 20));
}
if ($paypal = array("METHOD" => "ManageRecurringPaymentsProfileStatus", "ACTION" => "Cancel", "PROFILEID" => $cur__subscr_id)) {
c_ws_plugin__s2member_paypal_utilities::paypal_api_response($paypal);
$global_response = array("response" => _x('<strong>Billing termination confirmed.</strong> Your account has been cancelled.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $post_vars["attr"]["success"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
}
} else {
if (preg_match("/^(Pending|PendingProfile)\$/i", $paypal["STATUS"])) {
$global_response = array("response" => _x('<strong>Unable to cancel at this time.</strong> Your account is pending other changes. Please try again in 15 minutes.', "s2member-front", "s2member"), "error" => true);
} else {
$global_response = array("response" => _x('<strong>Billing terminated.</strong> Your account has been cancelled.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $post_vars["attr"]["success"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
}
}
} else {
if ($paypal && !empty($paypal["__error"]) && $paypal["L_ERRORCODE0"] === "11592") {
$global_response = array("response" => sprintf(_x('Please <a href="%s" rel="nofollow">log in at PayPal</a> to cancel your Subscription.', "s2member-front", "s2member"), esc_attr("https://" . ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com") . "/cgi-bin/webscr?cmd=_subscr-find&alias=" . urlencode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"]))), "error" => true);
} else {
$global_response = array("response" => _x('<strong>Billing terminated.</strong> Your account has been cancelled.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $post_vars["attr"]["success"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
}
}
} else {
$global_response = array("response" => _x('<strong>Billing terminated.</strong> Your account has been cancelled.', "s2member-front", "s2member"));
if ($post_vars["attr"]["success"] && ($custom_success_url = str_ireplace(array("%%s_response%%", "%%response%%"), array(urlencode(c_ws_plugin__s2member_utils_encryption::encrypt($global_response["response"])), urlencode($global_response["response"])), $post_vars["attr"]["success"])) && ($custom_success_url = trim(preg_replace("/%%(.+?)%%/i", "", $custom_success_url)))) {
wp_redirect(c_ws_plugin__s2member_utils_urls::add_s2member_sig($custom_success_url, "s2p-v")) . exit;
}
}
if ($post_vars["attr"]["unsub"]) {
c_ws_plugin__s2member_list_servers::process_list_server_removals_against_current_user(TRUE);
}
} else {
$global_response = array("response" => _x('You\'re <strong>NOT</strong> logged in.', "s2member-front", "s2member"), "error" => true);
}
} else {
$global_response = $error;
}
}
}
}