/** * Handles Registration Links. * * @package optimizeMember\Registrations * @since 3.5 * * @attaches-to ``add_action("init");`` * * @return null Or exits script execution after redirection. */ public static function register() { do_action("ws_plugin__optimizemember_before_register", get_defined_vars()); /**/ if (!empty($_GET["optimizemember_register"])) { eval('while (@ob_end_clean ());'); /* First we end/clean any output buffers that may exist already. */ /**/ $msg_503 = _x('<strong>Your Link Expired:</strong><br />Please contact Support if you need assistance.', "s2member-front", "s2member"); /**/ if (is_array($register = preg_split("/\\:\\.\\:\\|\\:\\.\\:/", c_ws_plugin__optimizemember_utils_encryption::decrypt(trim(stripslashes((string) $_GET["optimizemember_register"])))))) { if (count($register) === 6 && $register[0] === "subscr_gateway_subscr_id_custom_item_number_time") { if (is_numeric($register[5]) && $register[5] <= strtotime("now") && $register[5] >= strtotime("-" . apply_filters("ws_plugin__optimizemember_register_link_exp_time", "2 days", get_defined_vars()))) { $_COOKIE["optimizemember_subscr_gateway"] = c_ws_plugin__optimizemember_utils_encryption::encrypt($register[1]); $_COOKIE["optimizemember_subscr_id"] = c_ws_plugin__optimizemember_utils_encryption::encrypt($register[2]); $_COOKIE["optimizemember_custom"] = c_ws_plugin__optimizemember_utils_encryption::encrypt($register[3]); $_COOKIE["optimizemember_item_number"] = c_ws_plugin__optimizemember_utils_encryption::encrypt($register[4]); /**/ if (($reg_cookies = c_ws_plugin__optimizemember_register_access::reg_cookies_ok()) && extract($reg_cookies)) { status_header(200); /* Send a 200 OK status header. */ header("Content-Type: text/html; charset=utf-8"); /* Content-Type with UTF-8. */ /**/ setcookie("optimizemember_subscr_gateway", $_COOKIE["optimizemember_subscr_gateway"], time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie("optimizemember_subscr_gateway", $_COOKIE["optimizemember_subscr_gateway"], time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie("optimizemember_subscr_id", $_COOKIE["optimizemember_subscr_id"], time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie("optimizemember_subscr_id", $_COOKIE["optimizemember_subscr_id"], time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie("optimizemember_custom", $_COOKIE["optimizemember_custom"], time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie("optimizemember_custom", $_COOKIE["optimizemember_custom"], time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie("optimizemember_item_number", $_COOKIE["optimizemember_item_number"], time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie("optimizemember_item_number", $_COOKIE["optimizemember_item_number"], time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); /**/ do_action("ws_plugin__optimizemember_during_register", get_defined_vars()); /**/ if (is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && is_main_site() && ($location = c_ws_plugin__optimizemember_utils_urls::wp_signup_url())) { echo '<script type="text/javascript">' . "\n"; echo "window.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq($location) . "';"; echo '</script>' . "\n"; } else { if ($location = c_ws_plugin__optimizemember_utils_urls::wp_register_url()) { echo '<script type="text/javascript">' . "\n"; echo "window.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq($location) . "';"; echo '</script>' . "\n"; } } exit; /* Clean exit. The browser will now be redirected to ``$location``. */ } else { status_header(503) . header("Content-Type: text/html; charset=utf-8") . exit($msg_503); } } else { status_header(503) . header("Content-Type: text/html; charset=utf-8") . exit($msg_503); } } else { status_header(503) . header("Content-Type: text/html; charset=utf-8") . exit($msg_503); } } else { status_header(503) . header("Content-Type: text/html; charset=utf-8") . exit($msg_503); } } /**/ do_action("ws_plugin__optimizemember_after_register", get_defined_vars()); }
/** * Handles Google XML Checkout redirections. * * @package optimizeMember\Google * @since 1.5 * * @attaches-to ``add_action("init");`` * * @return null Or exits script execution after redirection to Google Checkout. */ public static function google_co() { global $current_site, $current_blog; /**/ if (!empty($_GET["optimizemember_pro_google_co"]) && c_ws_plugin__optimizemember_utils_urls::optimizemember_sig_ok($_SERVER["REQUEST_URI"]) && !empty($_GET["co"]) && is_array($attr = c_ws_plugin__optimizemember_utils_strings::trim_deep(stripslashes_deep($_GET["co"]))) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_merchant_id"]) { $attr = shortcode_atts(array("ids" => "0", "exp" => "72", "level" => "1", "ccaps" => "", "desc" => "", "cc" => "USD", "custom" => $_SERVER["HTTP_HOST"], "ta" => "0", "tp" => "0", "tt" => "D", "ra" => "0.01", "rp" => "1", "rt" => "M", "rr" => "1", "modify" => "0", "cancel" => "0", "sp" => "0", "image" => "default", "output" => "anchor"), $attr); /**/ $attr["tt"] = strtoupper($attr["tt"]); /* Term lengths absolutely must be provided in upper-case format. Only after running shortcode_atts(). */ $attr["rt"] = strtoupper($attr["rt"]); /* Term lengths absolutely must be provided in upper-case format. Only after running shortcode_atts(). */ $attr["rr"] = strtoupper($attr["rr"]); /* Must be provided in upper-case format. Numerical, or BN value. Only after running shortcode_atts(). */ $attr["ccaps"] = strtolower($attr["ccaps"]); /* Custom Capabilities must be typed in lower-case format. Only after running shortcode_atts(). */ $attr["rr"] = $attr["rt"] === "L" ? "BN" : $attr["rr"]; /* Lifetime Subscriptions require Buy Now. Only after running shortcode_atts(). */ $attr["rr"] = $attr["level"] === "*" ? "BN" : $attr["rr"]; /* Independent Ccaps do NOT recur. Only after running shortcode_atts(). */ $attr["rr"] = !$attr["tp"] && !$attr["rr"] ? "BN" : $attr["rr"]; /* No Trial / non-recurring. Only after running shortcode_atts(). */ /**/ if ($attr["modify"] || $attr["cancel"]) { $endpoint = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_sandbox"] ? "sandbox.google.com/checkout" : "checkout.google.com"; /**/ wp_redirect("https://" . $endpoint . "/"); } else { if ($attr["sp"]) { $attr["uniqid"] = uniqid(); /* Unique ID. */ $attr["referencing"] = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id(); /**/ $attr["sp_ids_exp"] = "sp:" . $attr["ids"] . ":" . $attr["exp"]; /* Combined "sp:ids:expiration hours". */ $attr["sp_access_link"] = c_ws_plugin__optimizemember_sp_access::sp_access_link_gen($attr["ids"], $attr["exp"]); /**/ $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<checkout-shopping-cart xmlns="http://checkout.google.com/schema/2">'; $xml .= '<shopping-cart>'; $xml .= '<items>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(TID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("Grants you immediate access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_txn_id>s2-' . esc_html($attr["uniqid"]) . '</s2_txn_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_item_number>' . esc_html($attr["sp_ids_exp"]) . '</s2_item_number>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; $xml .= '<description>' . esc_html($attr["desc"]) . '</description>'; $xml .= '<url>' . esc_html($attr["sp_access_link"]) . '</url>'; $xml .= '</digital-content>'; /**/ $xml .= '</item>'; /**/ $xml .= '</items>'; $xml .= '</shopping-cart>'; /**/ $xml .= '<checkout-flow-support>'; $xml .= '<merchant-checkout-flow-support>'; $xml .= '<edit-cart-url>' . esc_html(get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"])) . '</edit-cart-url>'; $xml .= '<continue-shopping-url>' . esc_html($attr["sp_access_link"]) . '</continue-shopping-url>'; $xml .= '</merchant-checkout-flow-support>'; $xml .= '</checkout-flow-support>'; /**/ $xml .= '</checkout-shopping-cart>'; /**/ $endpoint = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_sandbox"] ? "sandbox.google.com/checkout" : "checkout.google.com"; /**/ if (($xml = c_ws_plugin__optimizemember_utils_urls::remote("https://" . $endpoint . "/api/checkout/v2/merchantCheckout/Merchant/" . $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_merchant_id"], $xml, array_merge(c_ws_plugin__optimizemember_pro_google_utilities::google_api_headers(), array("timeout" => 20)))) && preg_match("/\\<redirect-url\\>(.+?)\\<\\/redirect-url\\>/i", preg_replace("/[\r\n\t]+/", "", $xml), $m) && ($google = $m[1])) { wp_redirect(wp_specialchars_decode($google, ENT_QUOTES)); } else { /* Display error message. */ echo strip_tags($xml); } } else { if ($attr["level"] === "*") { $attr["uniqid"] = uniqid(); /* Unique ID. */ $attr["referencing"] = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id(); /**/ $attr["level_ccaps_eotper"] = $attr["rt"] !== "L" ? $attr["level"] . ":" . $attr["ccaps"] . ":" . $attr["rp"] . " " . $attr["rt"] : $attr["level"] . ":" . $attr["ccaps"]; $attr["level_ccaps_eotper"] = rtrim($attr["level_ccaps_eotper"], ":"); /* Right-trim separators from this string so we don't have trailing colons. */ /**/ $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<checkout-shopping-cart xmlns="http://checkout.google.com/schema/2">'; $xml .= '<shopping-cart>'; $xml .= '<items>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(TID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("Grants you immediate access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_txn_id>s2-' . esc_html($attr["uniqid"]) . '</s2_txn_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>'; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; $xml .= '<description>' . esc_html(sprintf(_x('You now have access to:<br />%s<br />( <a href="%s">please log back in now</a> )', "s2member-front", "s2member"), $attr["desc"], esc_attr(wp_login_url()))) . '</description>'; $xml .= '<url>' . esc_html(wp_login_url()) . '</url>'; $xml .= '</digital-content>'; /**/ $xml .= '</item>'; /**/ $xml .= '</items>'; $xml .= '</shopping-cart>'; /**/ $xml .= '<checkout-flow-support>'; $xml .= '<merchant-checkout-flow-support>'; $xml .= '<edit-cart-url>' . esc_html(get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"])) . '</edit-cart-url>'; $xml .= '<continue-shopping-url>' . esc_html(wp_login_url()) . '</continue-shopping-url>'; $xml .= '</merchant-checkout-flow-support>'; $xml .= '</checkout-flow-support>'; /**/ $xml .= '</checkout-shopping-cart>'; /**/ $endpoint = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_sandbox"] ? "sandbox.google.com/checkout" : "checkout.google.com"; /**/ if (($xml = c_ws_plugin__optimizemember_utils_urls::remote("https://" . $endpoint . "/api/checkout/v2/merchantCheckout/Merchant/" . $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_merchant_id"], $xml, array_merge(c_ws_plugin__optimizemember_pro_google_utilities::google_api_headers(), array("timeout" => 20)))) && preg_match("/\\<redirect-url\\>(.+?)\\<\\/redirect-url\\>/i", preg_replace("/[\r\n\t]+/", "", $xml), $m) && ($google = $m[1])) { wp_redirect(wp_specialchars_decode($google, ENT_QUOTES)); } else { /* Display error message. */ echo strip_tags($xml); } } else { if ($attr["rr"] === "BN" || !$attr["tp"] && !$attr["rr"]) { $attr["uniqid"] = uniqid(); /* Unique ID. */ $attr["referencing"] = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id(); /**/ $attr["desc"] = !$attr["desc"] ? $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $attr["level"] . "_label"] : $attr["desc"]; /**/ $attr["level_ccaps_eotper"] = $attr["rt"] !== "L" ? $attr["level"] . ":" . $attr["ccaps"] . ":" . $attr["rp"] . " " . $attr["rt"] : $attr["level"] . ":" . $attr["ccaps"]; $attr["level_ccaps_eotper"] = rtrim($attr["level_ccaps_eotper"], ":"); /* Right-trim separators from this string so we don't have trailing colons. */ /**/ $attr["register_access_link"] = c_ws_plugin__optimizemember_register_access::register_link_gen("google", "s2-" . $attr["uniqid"], $attr["custom"], $attr["level_ccaps_eotper"]); /**/ $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<checkout-shopping-cart xmlns="http://checkout.google.com/schema/2">'; $xml .= '<shopping-cart>'; $xml .= '<items>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(TID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("Grants you immediate access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_txn_id>s2-' . esc_html($attr["uniqid"]) . '</s2_txn_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; /**/ if ($attr["referencing"]) { $xml .= '<description>' . esc_html(sprintf(_x('You\'ve been updated to:<br />%s<br />( <a href="%s">please log back in now</a> )', "s2member-front", "s2member"), $attr["desc"], esc_attr(wp_login_url()))) . '</description>'; $xml .= '<url>' . esc_html(wp_login_url()) . '</url>'; } else { $xml .= '<description>' . esc_html(sprintf(_x('%s<br />( the next step is to Register a Username )', "s2member-front", "s2member"), $attr["desc"])) . '</description>'; $xml .= '<url>' . esc_html($attr["register_access_link"]) . '</url>'; } /**/ $xml .= '</digital-content>'; /**/ $xml .= '</item>'; /**/ $xml .= '</items>'; $xml .= '</shopping-cart>'; /**/ $xml .= '<checkout-flow-support>'; $xml .= '<merchant-checkout-flow-support>'; $xml .= '<edit-cart-url>' . esc_html(get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"])) . '</edit-cart-url>'; $xml .= '<continue-shopping-url>' . esc_html($attr["referencing"] ? wp_login_url() : $attr["register_access_link"]) . '</continue-shopping-url>'; $xml .= '</merchant-checkout-flow-support>'; $xml .= '</checkout-flow-support>'; /**/ $xml .= '</checkout-shopping-cart>'; /**/ $endpoint = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_sandbox"] ? "sandbox.google.com/checkout" : "checkout.google.com"; /**/ if (($xml = c_ws_plugin__optimizemember_utils_urls::remote("https://" . $endpoint . "/api/checkout/v2/merchantCheckout/Merchant/" . $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_merchant_id"], $xml, array_merge(c_ws_plugin__optimizemember_pro_google_utilities::google_api_headers(), array("timeout" => 20)))) && preg_match("/\\<redirect-url\\>(.+?)\\<\\/redirect-url\\>/i", preg_replace("/[\r\n\t]+/", "", $xml), $m) && ($google = $m[1])) { wp_redirect(wp_specialchars_decode($google, ENT_QUOTES)); } else { /* Display error message. */ echo strip_tags($xml); } } else { $attr["uniqid"] = uniqid(); /* Unique ID. */ $attr["referencing"] = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id(); /**/ $attr["desc"] = !$attr["desc"] ? $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $attr["level"] . "_label"] : $attr["desc"]; /**/ $attr["level_ccaps_eotper"] = $attr["level"] . ":" . $attr["ccaps"]; /* Actual Subscriptions will always end on their own. */ $attr["level_ccaps_eotper"] = rtrim($attr["level_ccaps_eotper"], ":"); /* Clean any trailing separators from this string. */ /**/ $attr["periodicity"] = c_ws_plugin__optimizemember_pro_google_utilities::google_periodicity($attr["rp"] . " " . $attr["rt"]); /* Google periodicity. */ /**/ $attr["register_access_link"] = c_ws_plugin__optimizemember_register_access::register_link_gen("google", "s2-" . $attr["uniqid"], $attr["custom"], $attr["level_ccaps_eotper"]); /**/ if ($attr["tp"]) { $attr["start_time"] = c_ws_plugin__optimizemember_pro_google_utilities::google_start_time($attr["tp"] . " " . $attr["tt"]); /**/ $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<checkout-shopping-cart xmlns="http://checkout.google.com/schema/2">'; $xml .= '<shopping-cart>'; $xml .= '<items>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= $attr["ta"] < 0.01 ? '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("100% free trial. NO charge today.", "s2member-front", "s2member")) . '</item-description>' : '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("First payment for immediate access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ta"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_subscr_id>s2-' . esc_html($attr["uniqid"]) . '</s2_subscr_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_period1>' . esc_html($attr["tp"] . " " . $attr["tt"]) . '</s2_period1>'; $xml .= '<s2_period3>' . esc_html($attr["rp"] . " " . $attr["rt"]) . '</s2_period3>'; $xml .= $attr["rr"] ? '<s2_recurring>' . esc_html($attr["rr"]) . '</s2_recurring>' : ''; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; $xml .= '<description>' . esc_html(_x("You'll receive an email confirmation within 15 minutes.", "s2member-front", "s2member")) . '</description>'; $xml .= '</digital-content>'; /**/ $xml .= '</item>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(sprintf(_x("Cancel at any time to avoid %s.", "s2member-front", "s2member"), !$attr["rr"] ? _x("this charge", "s2member-front", "s2member") : _x("charges", "s2member-front", "s2member"))) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">0.00</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_subscr_id>s2-' . esc_html($attr["uniqid"]) . '</s2_subscr_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_period1>' . esc_html($attr["tp"] . " " . $attr["tt"]) . '</s2_period1>'; $xml .= '<s2_period3>' . esc_html($attr["rp"] . " " . $attr["rt"]) . '</s2_period3>'; $xml .= $attr["rr"] ? '<s2_recurring>' . esc_html($attr["rr"]) . '</s2_recurring>' : ''; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; /**/ if ($attr["referencing"]) { $xml .= '<description>' . esc_html(sprintf(_x('You\'ve been updated to:<br />%s<br />( <a href="%s">please log back in now</a> )', "s2member-front", "s2member"), $attr["desc"], esc_attr(wp_login_url()))) . '</description>'; $xml .= '<url>' . esc_html(wp_login_url()) . '</url>'; } else { $xml .= '<description>' . esc_html(sprintf(_x('%s<br />( the next step is to Register a Username )', "s2member-front", "s2member"), $attr["desc"])) . '</description>'; $xml .= '<url>' . esc_html($attr["register_access_link"]) . '</url>'; } /**/ $xml .= '</digital-content>'; /**/ $xml .= '<subscription type="google" period="' . esc_attr($attr["periodicity"]) . '" start-date="' . esc_attr(date("Y-m-d", $attr["start_time"]) . "T00:00:00Z") . '">'; /**/ $xml .= '<payments>'; $xml .= '<subscription-payment' . (!$attr["rr"] ? ' times="1"' : '') . '>'; $xml .= '<maximum-charge currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</maximum-charge>'; $xml .= '</subscription-payment>'; $xml .= '</payments>'; /**/ $xml .= '<recurrent-item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("Covers ongoing access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_subscr_payment>1</s2_subscr_payment>'; $xml .= '<s2_subscr_id>s2-' . esc_html($attr["uniqid"]) . '</s2_subscr_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_period1>' . esc_html($attr["tp"] . " " . $attr["tt"]) . '</s2_period1>'; $xml .= '<s2_period3>' . esc_html($attr["rp"] . " " . $attr["rt"]) . '</s2_period3>'; $xml .= $attr["rr"] ? '<s2_recurring>' . esc_html($attr["rr"]) . '</s2_recurring>' : ''; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; $xml .= '<description>' . esc_html($attr["desc"]) . '</description>'; $xml .= '<url>' . esc_html(home_url("/")) . '</url>'; $xml .= '</digital-content>'; /**/ $xml .= '</recurrent-item>'; /**/ $xml .= '</subscription>'; /**/ $xml .= '</item>'; /**/ $xml .= '</items>'; $xml .= '</shopping-cart>'; /**/ $xml .= '<checkout-flow-support>'; $xml .= '<merchant-checkout-flow-support>'; $xml .= '<edit-cart-url>' . esc_html(get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"])) . '</edit-cart-url>'; $xml .= '<continue-shopping-url>' . esc_html($attr["referencing"] ? wp_login_url() : $attr["register_access_link"]) . '</continue-shopping-url>'; $xml .= '</merchant-checkout-flow-support>'; $xml .= '</checkout-flow-support>'; /**/ $xml .= '</checkout-shopping-cart>'; } else { if (!$attr["tp"] && $attr["rr"]) { $attr["start_time"] = c_ws_plugin__optimizemember_pro_google_utilities::google_start_time($attr["rp"] . " " . $attr["rt"]); /**/ $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<checkout-shopping-cart xmlns="http://checkout.google.com/schema/2">'; $xml .= '<shopping-cart>'; $xml .= '<items>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("First payment for immediate access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_subscr_id>s2-' . esc_html($attr["uniqid"]) . '</s2_subscr_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_period1>0 D</s2_period1>'; /* There is no Trial Period. */ $xml .= '<s2_period3>' . esc_html($attr["rp"] . " " . $attr["rt"]) . '</s2_period3>'; $xml .= '<s2_recurring>' . esc_html($attr["rr"]) . '</s2_recurring>'; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; $xml .= '<description>' . esc_html(_x("You'll receive an email confirmation within 15 minutes.", "s2member-front", "s2member")) . '</description>'; $xml .= '</digital-content>'; /**/ $xml .= '</item>'; /**/ $xml .= '<item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("Cancel at any time to avoid charges.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">0.00</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_subscr_id>s2-' . esc_html($attr["uniqid"]) . '</s2_subscr_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_period1>0 D</s2_period1>'; /* There is no Trial Period. */ $xml .= '<s2_period3>' . esc_html($attr["rp"] . " " . $attr["rt"]) . '</s2_period3>'; $xml .= '<s2_recurring>' . esc_html($attr["rr"]) . '</s2_recurring>'; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; /**/ if ($attr["referencing"]) { $xml .= '<description>' . esc_html(sprintf(_x('You\'ve been updated to:<br />%s<br />( <a href="%s">please log back in now</a> )', "s2member-front", "s2member"), $attr["desc"], esc_attr(wp_login_url()))) . '</description>'; $xml .= '<url>' . esc_html(wp_login_url()) . '</url>'; } else { $xml .= '<description>' . esc_html(sprintf(_x('%s<br />( the next step is to Register a Username )', "s2member-front", "s2member"), $attr["desc"])) . '</description>'; $xml .= '<url>' . esc_html($attr["register_access_link"]) . '</url>'; } /**/ $xml .= '</digital-content>'; /**/ $xml .= '<subscription type="google" period="' . esc_attr($attr["periodicity"]) . '" start-date="' . esc_attr(date("Y-m-d", $attr["start_time"]) . "T00:00:00Z") . '">'; /**/ $xml .= '<payments>'; $xml .= '<subscription-payment>'; $xml .= '<maximum-charge currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</maximum-charge>'; $xml .= '</subscription-payment>'; $xml .= '</payments>'; /**/ $xml .= '<recurrent-item>'; /**/ $xml .= '<quantity>1</quantity>'; $xml .= '<item-name>' . esc_html($attr["desc"]) . '</item-name>'; $xml .= '<item-description>(SID:s2-' . esc_html($attr["uniqid"]) . ') ' . esc_html(_x("Covers ongoing access.", "s2member-front", "s2member")) . '</item-description>'; $xml .= '<unit-price currency="' . esc_attr($attr["cc"]) . '">' . esc_html($attr["ra"]) . '</unit-price>'; /**/ $xml .= '<merchant-private-item-data>'; $xml .= '<s2_subscr_payment>1</s2_subscr_payment>'; $xml .= '<s2_subscr_id>s2-' . esc_html($attr["uniqid"]) . '</s2_subscr_id>'; $xml .= '<s2_custom>' . esc_html($attr["custom"]) . '</s2_custom>'; $xml .= '<s2_customer_ip>' . esc_html($_SERVER["REMOTE_ADDR"]) . '</s2_customer_ip>'; $xml .= '<s2_item_number>' . esc_html($attr["level_ccaps_eotper"]) . '</s2_item_number>'; $xml .= '<s2_period1>0 D</s2_period1>'; /* There is no Trial Period. */ $xml .= '<s2_period3>' . esc_html($attr["rp"] . " " . $attr["rt"]) . '</s2_period3>'; $xml .= '<s2_recurring>' . esc_html($attr["rr"]) . '</s2_recurring>'; $xml .= $attr["referencing"] ? '<s2_referencing>' . esc_html($attr["referencing"]) . '</s2_referencing>' : ''; $xml .= '</merchant-private-item-data>'; /**/ $xml .= '<digital-content>'; $xml .= '<display-disposition>PESSIMISTIC</display-disposition>'; $xml .= '<description>' . esc_html($attr["desc"]) . '</description>'; $xml .= '<url>' . esc_html(home_url("/")) . '</url>'; $xml .= '</digital-content>'; /**/ $xml .= '</recurrent-item>'; /**/ $xml .= '</subscription>'; /**/ $xml .= '</item>'; /**/ $xml .= '</items>'; $xml .= '</shopping-cart>'; /**/ $xml .= '<checkout-flow-support>'; $xml .= '<merchant-checkout-flow-support>'; $xml .= '<edit-cart-url>' . esc_html(get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"])) . '</edit-cart-url>'; $xml .= '<continue-shopping-url>' . esc_html($attr["referencing"] ? wp_login_url() : $attr["register_access_link"]) . '</continue-shopping-url>'; $xml .= '</merchant-checkout-flow-support>'; $xml .= '</checkout-flow-support>'; /**/ $xml .= '</checkout-shopping-cart>'; } } /**/ $endpoint = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_sandbox"] ? "sandbox.google.com/checkout" : "checkout.google.com"; /**/ if (($xml = c_ws_plugin__optimizemember_utils_urls::remote("https://" . $endpoint . "/api/checkout/v2/merchantCheckout/Merchant/" . $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_google_merchant_id"], $xml, array_merge(c_ws_plugin__optimizemember_pro_google_utilities::google_api_headers(), array("timeout" => 20)))) && preg_match("/\\<redirect-url\\>(.+?)\\<\\/redirect-url\\>/i", preg_replace("/[\r\n\t]+/", "", $xml), $m) && ($google = $m[1])) { wp_redirect(wp_specialchars_decode($google, ENT_QUOTES)); } else { /* Display error message. */ echo strip_tags($xml); } } } } } /**/ exit; /* Clean exit. */ } }
/** * Generates Registration Access Links via AJAX. * * @package optimizeMember\Registrations * @since 3.5 * * @attaches-to ``add_action("wp_ajax_ws_plugin__optimizemember_reg_access_link_via_ajax");`` * * @return null Exits script execution after output is generated for AJAX caller. */ public static function reg_access_link_via_ajax() { do_action("ws_plugin__optimizemember_before_reg_access_link_via_ajax", get_defined_vars()); /**/ status_header(200); /* Send a 200 OK status header. */ header("Content-Type: text/plain; charset=utf-8"); /* Content-Type with UTF-8. */ eval('while (@ob_end_clean ());'); /* End/clean all output buffers that may exist. */ /**/ if (current_user_can("create_users")) { /* Check priveledges as well. Ability to create Users? */ /**/ if (!empty($_POST["ws_plugin__optimizemember_reg_access_link_via_ajax"]) && is_string($nonce = $_POST["ws_plugin__optimizemember_reg_access_link_via_ajax"]) && wp_verify_nonce($nonce, "ws-plugin--optimizemember-reg-access-link-via-ajax")) { /**/ if (($_p = c_ws_plugin__optimizemember_utils_strings::trim_deep(stripslashes_deep($_POST))) && isset($_p["optimizemember_reg_access_link_subscr_gateway"], $_p["optimizemember_reg_access_link_subscr_id"], $_p["optimizemember_reg_access_link_custom"], $_p["optimizemember_reg_access_link_item_number"])) { $register_link = c_ws_plugin__optimizemember_register_access::register_link_gen((string) $_p["optimizemember_reg_access_link_subscr_gateway"], (string) $_p["optimizemember_reg_access_link_subscr_id"], (string) $_p["optimizemember_reg_access_link_custom"], (string) $_p["optimizemember_reg_access_link_item_number"]); } } } /**/ exit(apply_filters("ws_plugin__optimizemember_reg_access_link_via_ajax", !empty($register_link) ? $register_link : "", get_defined_vars())); }
/** * Displays Capability Tracking Codes. * * These are stored inside optimizeMember's Transient Queue by the IPN processor. * * Tracking Codes are only displayed/processed one time. * optimizeMember will display Tracking Codes in (1) of these 3 locations: * * o On the Return URL / Thank-You Page, after returning from your Payment Gateway. * o Otherwise, if possible, on the Login Form *( in the footer )* after returning from your Payment Gateway. * o Otherwise, in the footer of your WordPress theme, as soon as possible; or after the Customer's next login. * * @package optimizeMember\Tracking * @since 110815 * * @attaches-to ``add_action("login_footer");`` * @attaches-to ``add_action("wp_footer");`` * @also-called-by {@link optimizeMember\Tracking\c_ws_plugin__optimizemember_tracking_codes::generate_all_tracking_codes()} * * @return null After displaying possible Tracking Code(s). */ public static function display_ccap_tracking_codes() { do_action("ws_plugin__optimizemember_before_display_ccap_tracking_codes", get_defined_vars()); /**/ if (!empty($_COOKIE["optimizemember_tracking"]) && ($subscr_or_txn_id = c_ws_plugin__optimizemember_utils_encryption::decrypt($_COOKIE["optimizemember_tracking"])) || ($reg_cookies = c_ws_plugin__optimizemember_register_access::reg_cookies_ok()) && extract($reg_cookies) && ($subscr_or_txn_id = $subscr_id)) { if ($code = get_transient($transient = "s2m_" . md5("optimizemember_transient_ccap_tracking_codes_" . $subscr_or_txn_id))) { delete_transient($transient); /* Only display this ONE time. Delete transient immediately. */ /**/ echo '<img src="' . esc_attr(site_url("/?optimizemember_delete_tracking_cookie=1")) . '" alt="." style="width:1px; height:1px; border:0;" />' . "\n"; /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_display_ccap_tracking_codes", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if (is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && !is_main_site()) { echo do_shortcode($code) . "\n"; /* No PHP here. */ } else { echo do_shortcode(c_ws_plugin__optimizemember_utilities::evl($code)); } } } /**/ do_action("ws_plugin__optimizemember_after_display_ccap_tracking_codes", get_defined_vars()); /**/ return; /* Return for uniformity. */ }
/** * Determines which Custom Fields apply to a specific Level. * * @package optimizeMember\Custom_Reg_Fields * @since 3.5 * * @param str|int $_level Optional. Defaults to the current User's Access Level number. * You can either pass in a numeric Level number, or the string `auto-detection`. * @param str $_editable_context Optional. One of `profile|profile-view|registration`. * @return array Array of Custom Field IDs applicable. */ public static function custom_fields_configured_at_level($_level = "auto-detection", $_editable_context = FALSE) { eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_before_custom_fields_configured_at_level", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $level = $_level === "auto-detection" ? c_ws_plugin__optimizemember_user_access::user_access_level() : $_level; if ($_level === "auto-detection" && $level < 0 && ($reg_cookies = c_ws_plugin__optimizemember_register_access::reg_cookies_ok()) && extract($reg_cookies) && preg_match($GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["membership_item_number_w_level_regex"], $item_number, $m) && !empty($m[1]) && is_numeric($m[1])) { $level = $m[1]; } /**/ $level = $level !== "any" && (!is_numeric($level) || $level < 0) ? 0 : $level; /**/ if (($level === "any" || is_numeric($level) && $level >= 0) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"]) { foreach (json_decode($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"], true) as $field) { if ($level === "any" || $field["levels"] === "all" || in_array($level, preg_split("/[;,]+/", preg_replace("/[^0-9;,]/", "", $field["levels"])))) { if (empty($_editable_context) || $_editable_context === "administrative" || $_editable_context === "registration" && $field["editable"] !== "no-always-invisible" && $field["editable"] !== "yes-invisible" || ($_editable_context === "profile" || $_editable_context === "profile-view") && $field["editable"] !== "no-invisible" && $field["editable"] !== "no-always-invisible") { $configured[] = $field["id"]; } } } } /**/ return apply_filters("ws_plugin__optimizemember_custom_fields_configured_at_level", !empty($configured) ? $configured : array(), get_defined_vars()); }
/** * Configures all new Users. * * The Hook `user_register` is also fired by calling: * ``c_ws_plugin__optimizemember_registrations::ms_create_existing_user()`` and/or ``wpmu_create_user()``. * * This function also receives hand-offs from optimizeMember's handlers for these two Hooks: * `wpmu_activate_user` and `wpmu_activate_blog`. * * @package optimizeMember\Registrations * @since 3.5 * * @attaches-to ``add_action("user_register");`` * * @param int|str $user_id A numeric WordPress User ID. * @param str $password Optional in most cases. A User's plain text Password. If unspecified, attempts are made to collect the plain text Password from other sources. * @param array $meta Optional in most cases. Defaults to false. An array of meta data for a User/Member. * @return null No return value. Returns `null` in possible every scenario. * * @todo Impossible to delete cookies when fired inside: `/wp-activate.php`? */ public static function configure_user_registration($user_id = FALSE, $password = FALSE, $meta = FALSE) { global $wpdb; /* Global database object reference. */ global $pagenow; /* We need this to detect the current administration page. */ global $current_site, $current_blog; /* Adds support for Multisite Networking. */ static $email_config, $processed; /* Static vars prevent duplicate processing. */ /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_before_configure_user_registration", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ /* With Multisite Networking, we need this to run on `user_register` ahead of `wpmu_activate_[user|blog]`. */ if (!isset($email_config) && ($email_config = true)) { /* Anytime this routine is fired; we configure email. */ c_ws_plugin__optimizemember_email_configs::email_config(); } /* Configures `From:` email header. */ /**/ $_p = isset($_POST) ? $_POST : null; $rvs = isset($GLOBALS["ws_plugin__optimizemember_registration_vars"]) ? $GLOBALS["ws_plugin__optimizemember_registration_vars"] : null; /**/ if (!$processed) { /**/ if (is_array($_p) || is_array($meta) || is_array($rvs)) { /**/ if (!(is_multisite() && is_blog_admin() && $pagenow === "user-new.php" && isset($_p["noconfirmation"]) && is_super_admin() && !is_array($meta))) { if (!(preg_match("/\\/wp-activate\\.php/", $_SERVER["REQUEST_URI"]) && !is_array($meta))) { if (!(c_ws_plugin__optimizemember_utils_conds::bp_is_installed() && bp_is_activation_page() && !is_array($meta))) { if (!(c_ws_plugin__optimizemember_utils_conds::pro_is_installed() && c_ws_plugin__optimizemember_pro_remote_ops::is_remote_op("create_user") && !is_array($rvs))) { /**/ if ($user_id && is_object($user = new WP_User($user_id)) && !empty($user->ID) && ($user_id = $user->ID) && ($processed = true)) { settype($_p, "array") . settype($meta, "array") . settype($rvs, "array"); /**/ $_p = c_ws_plugin__optimizemember_utils_strings::trim_deep(stripslashes_deep($_p)); $meta = c_ws_plugin__optimizemember_utils_strings::trim_deep(stripslashes_deep($meta)); $rvs = c_ws_plugin__optimizemember_utils_strings::trim_deep($rvs); /**/ foreach ($_p as $_key => $_value) { /* Scan ``$_p`` vars; adding `custom_reg_field` keys. */ if (preg_match("/^ws_plugin__optimizemember_user_new_/", $_key)) { /* Look for keys. */ if ($_key = str_replace("_user_new_", "_custom_reg_field_", $_key)) { $_p[$_key] = $_value; } } } /* Add each of these key conversions. */ unset($_key, $_value); /**/ if (!is_admin() && (isset($_p["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_gateway"]) || isset($_p["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_id"]) || isset($_p["ws_plugin__optimizemember_custom_reg_field_optimizemember_custom"]) || isset($_p["ws_plugin__optimizemember_custom_reg_field_optimizemember_ccaps"]) || isset($_p["ws_plugin__optimizemember_custom_reg_field_optimizemember_auto_eot_time"]) || isset($_p["ws_plugin__optimizemember_custom_reg_field_optimizemember_notes"]))) { exit(_x("optimizeMember security violation. You attempted to POST administrative variables that will NOT be trusted in a NON-administrative zone!", "s2member-front", "s2member")); } /**/ $_pmr = array_merge($_p, $meta, $rvs); /* Merge all of these arrays together now, in this specific order. */ unset($_p, $meta, $rvs); /* These variables can all be unset now; we have them all in the ``$_pmr`` array. */ /**/ $custom_reg_display_name = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_display_name"]; /* Can be configured by the site owner. */ /**/ if (!is_admin() && (!c_ws_plugin__optimizemember_utils_conds::pro_is_installed() || !c_ws_plugin__optimizemember_pro_remote_ops::is_remote_op("create_user")) && ($reg_cookies = c_ws_plugin__optimizemember_register_access::reg_cookies_ok()) && extract($reg_cookies)) { /* This routine could be processed through `/wp-login.php?action=register`, `/wp-activate.php`, or `/activate` via BuddyPress`. This may also be processed through a standard BuddyPress installation, or another plugin calling `user_register`. If processed through `/wp-activate.php`, it could've originated inside the admin, via `/user-new.php`. */ /**/ $processed = "yes"; /* Mark this as yes. */ /**/ $current_role = c_ws_plugin__optimizemember_user_access::user_access_role($user); @(list($level, $ccaps, $eotper) = preg_split("/\\:/", $item_number, 3)); $role = "optimizemember_level" . $level; /* Membership Level. */ /**/ $email = $user->user_email; $login = $user->user_login; $ip = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_registration_ip"]; $ip = !$ip ? $_SERVER["REMOTE_ADDR"] : $ip; /* Else use environment variable. */ $cv = preg_split("/\\|/", $custom); /**/ if (!($auto_eot_time = "") && $eotper) { /* If a specific EOT Period is included. */ $auto_eot_time = c_ws_plugin__optimizemember_utils_time::auto_eot_time("", "", "", $eotper); } /**/ $notes = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_notes"]; /**/ $opt_in = !$GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_opt_in"] ? true : false; $opt_in = !$opt_in && !empty($_pmr["ws_plugin__optimizemember_custom_reg_field_opt_in"]) ? true : $opt_in; /**/ if (!($fname = $user->first_name)) { if (!empty($_pmr["ws_plugin__optimizemember_custom_reg_field_first_name"])) { $fname = (string) $_pmr["ws_plugin__optimizemember_custom_reg_field_first_name"]; } } /**/ if (!$fname) { /* Also try BuddyPress. */ if (!empty($_pmr["field_1"])) { /* BuddyPress? */ $fname = trim(preg_replace("/ (.*)\$/", "", (string) $_pmr["field_1"])); } } /**/ if (!($lname = $user->last_name)) { if (!empty($_pmr["ws_plugin__optimizemember_custom_reg_field_last_name"])) { $lname = (string) $_pmr["ws_plugin__optimizemember_custom_reg_field_last_name"]; } } /**/ if (!$lname) { /* Also try BuddyPress. */ if (!empty($_pmr["field_1"]) && preg_match("/^(.+?) (.+)\$/", (string) $_pmr["field_1"])) { $lname = trim(preg_replace("/^(.+?) (.+)\$/", "\$2", (string) $_pmr["field_1"])); } } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_names"] && !$fname) { if ($login) { /* Username and empty Last Name. */ eval('$fname = trim ($login); $lname = "";'); } } /**/ $name = trim($fname . " " . $lname); /* Both names. */ /**/ if (!($pass = $password)) { /* Try optimizeMember's generator. */ if (!empty($GLOBALS["ws_plugin__optimizemember_generate_password_return"])) { $pass = (string) $GLOBALS["ws_plugin__optimizemember_generate_password_return"]; } } /**/ if (!$pass) { /* Also try BuddyPress Password. */ if (!empty($_pmr["signup_password"])) { /* BuddyPress? */ $pass = (string) $_pmr["signup_password"]; } } /**/ if ($pass) { !headers_sent() ? delete_user_setting("default_password_nag", $user_id) : null; update_user_option($user_id, "default_password_nag", false, true); } /**/ update_user_option($user_id, "optimizemember_registration_ip", $ip); update_user_option($user_id, "optimizemember_auto_eot_time", $auto_eot_time); update_user_option($user_id, "optimizemember_subscr_gateway", $subscr_gateway); update_user_option($user_id, "optimizemember_subscr_id", $subscr_id); update_user_option($user_id, "optimizemember_custom", $custom); update_user_option($user_id, "optimizemember_notes", $notes); /**/ if (!$user->first_name && $fname) { update_user_meta($user_id, "first_name", $fname); } /**/ if (!$user->last_name && $lname) { update_user_meta($user_id, "last_name", $lname); } /**/ if (!$user->display_name || $user->display_name === $user->user_login) { if ($custom_reg_display_name === "full" && $name) { wp_update_user(array("ID" => $user_id, "display_name" => $name)); } else { if ($custom_reg_display_name === "first" && $fname) { wp_update_user(array("ID" => $user_id, "display_name" => $fname)); } else { if ($custom_reg_display_name === "last" && $lname) { wp_update_user(array("ID" => $user_id, "display_name" => $lname)); } else { if ($custom_reg_display_name === "login" && $login) { wp_update_user(array("ID" => $user_id, "display_name" => $login)); } } } } } /**/ if (is_multisite()) { if (!is_main_site() && strtotime($user->user_registered) >= strtotime("-10 seconds")) { remove_user_from_blog($user_id, $current_site->blog_id); } /* No Main Site Role. */ /**/ if (!get_user_meta($user_id, "optimizemember_originating_blog", true)) { /* Recorded yet? */ update_user_meta($user_id, "optimizemember_originating_blog", $current_blog->blog_id); } } /**/ if ($current_role !== $role) { /* Only if NOT the current Role. */ $user->set_role($role); } /* optimizeMember. */ /**/ if ($ccaps && preg_match("/^-all/", str_replace("+", "", $ccaps))) { foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_optimizemember_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } } /**/ if ($ccaps && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $ccaps))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $ccaps))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_optimizemember_ccap_" . $ccap); } } } /**/ if (!($fields = array()) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"]) { foreach (json_decode($GLOBALS["WS_PLUGIN__"]["optimizemember"]["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($_pmr["ws_plugin__optimizemember_custom_reg_field_" . $field_var])) { $fields[$field_var] = $_pmr["ws_plugin__optimizemember_custom_reg_field_" . $field_var]; } } } /**/ if (!empty($fields)) { /* Only if NOT empty. */ update_user_option($user_id, "optimizemember_custom_fields", $fields); } /**/ if ($level > 0) { $pr_times = get_user_option("optimizemember_paid_registration_times", $user_id); $pr_times["level"] = empty($pr_times["level"]) ? time() : $pr_times["level"]; $pr_times["level" . $level] = empty($pr_times["level" . $level]) ? time() : $pr_times["level" . $level]; update_user_option($user_id, "optimizemember_paid_registration_times", $pr_times); /* Update now. */ } /**/ if (($transient = "s2m_" . md5("optimizemember_transient_ipn_signup_vars_" . $subscr_id)) && is_array($ipn_signup_vars = get_transient($transient))) { update_user_option($user_id, "optimizemember_ipn_signup_vars", $ipn_signup_vars); /* For future reference. */ delete_transient($transient); /* This can be deleted now. */ } if (($transient = "s2m_" . md5("optimizemember_transient_ipn_subscr_payment_" . $subscr_id)) && is_array($subscr_payment = get_transient($transient)) && !empty($subscr_payment["subscr_gateway"])) { $proxy = array("optimizemember_paypal_notify" => "1", "optimizemember_paypal_proxy" => stripslashes((string) $subscr_payment["subscr_gateway"]), "optimizemember_paypal_proxy_verification" => c_ws_plugin__optimizemember_paypal_utilities::paypal_proxy_key_gen()); c_ws_plugin__optimizemember_utils_urls::remote(add_query_arg(urlencode_deep($proxy), site_url("/")), stripslashes_deep($subscr_payment), array("timeout" => 20)); delete_transient($transient); /* This can be deleted now. */ } if (($transient = "s2m_" . md5("optimizemember_transient_ipn_subscr_eot_" . $subscr_id)) && is_array($subscr_eot = get_transient($transient)) && !empty($subscr_eot["subscr_gateway"])) { $proxy = array("optimizemember_paypal_notify" => "1", "optimizemember_paypal_proxy" => stripslashes((string) $subscr_eot["subscr_gateway"]), "optimizemember_paypal_proxy_verification" => c_ws_plugin__optimizemember_paypal_utilities::paypal_proxy_key_gen()); c_ws_plugin__optimizemember_utils_urls::remote(add_query_arg(urlencode_deep($proxy), site_url("/")), stripslashes_deep($subscr_eot), array("timeout" => 20)); delete_transient($transient); /* This can be deleted now. */ } /**/ if (!headers_sent()) { /* Only if headers are NOT yet sent. Here we establish both Signup and Payment Tracking Cookies. */ @setcookie("optimizemember_tracking", $optimizemember_tracking = c_ws_plugin__optimizemember_utils_encryption::encrypt($subscr_id), time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . @setcookie("optimizemember_tracking", $optimizemember_tracking, time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN) . ($_COOKIE["optimizemember_tracking"] = $optimizemember_tracking); } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_configure_user_registration_front_side_paid", get_defined_vars()); do_action("ws_plugin__optimizemember_during_configure_user_registration_front_side", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } else { if (!is_admin() && (!c_ws_plugin__optimizemember_utils_conds::pro_is_installed() || !c_ws_plugin__optimizemember_pro_remote_ops::is_remote_op("create_user"))) { /* This routine could be processed through `/wp-login.php?action=register`, `/wp-activate.php`, or `/activate` via BuddyPress`. This may also be processed through a standard BuddyPress installation, or another plugin calling `user_register`. If processed through `/wp-activate.php`, it could've originated inside the admin, via `/user-new.php`. */ /**/ $processed = "yes"; /* Mark this as yes. */ /**/ $current_role = c_ws_plugin__optimizemember_user_access::user_access_role($user); $role = ""; /* Initialize ``$role`` to an empty string here, before processing. */ $role = !$role && ($level = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"]) > 0 ? "optimizemember_level" . $level : $role; $role = !$role && ($level = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"]) === "0" ? "subscriber" : $role; $role = !$role && $current_role ? $current_role : $role; /* Use existing Role? */ $role = !$role ? get_option("default_role") : $role; /* Otherwise default. */ /**/ $level = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"]; $level = !$level && preg_match("/^(administrator|editor|author|contributor)\$/i", $role) ? $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"] : $level; $level = !$level && preg_match("/^optimizemember_level[1-9][0-9]*\$/i", $role) ? preg_replace("/^optimizemember_level/", "", $role) : $level; $level = !$level && preg_match("/^subscriber\$/i", $role) ? "0" : $level; $level = !$level ? "0" : $level; /**/ $ccaps = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_ccaps"]; /**/ $email = $user->user_email; $login = $user->user_login; $ip = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_registration_ip"]; $ip = !$ip ? $_SERVER["REMOTE_ADDR"] : $ip; /* Else use environment variable. */ $custom = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_custom"]; $subscr_id = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_id"]; $subscr_gateway = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_gateway"]; $cv = preg_split("/\\|/", (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_custom"]); /**/ $auto_eot_time = ($eot = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_auto_eot_time"]) ? strtotime($eot) : ""; $notes = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_notes"]; /**/ $opt_in = !$GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_opt_in"] ? true : false; $opt_in = !$opt_in && !empty($_pmr["ws_plugin__optimizemember_custom_reg_field_opt_in"]) ? true : $opt_in; /**/ if (!($fname = $user->first_name)) { if (!empty($_pmr["ws_plugin__optimizemember_custom_reg_field_first_name"])) { $fname = (string) $_pmr["ws_plugin__optimizemember_custom_reg_field_first_name"]; } } /**/ if (!$fname) { /* Also try BuddyPress. */ if (!empty($_pmr["field_1"])) { /* BuddyPress? */ $fname = trim(preg_replace("/ (.*)\$/", "", (string) $_pmr["field_1"])); } } /**/ if (!($lname = $user->last_name)) { if (!empty($_pmr["ws_plugin__optimizemember_custom_reg_field_last_name"])) { $lname = (string) $_pmr["ws_plugin__optimizemember_custom_reg_field_last_name"]; } } /**/ if (!$lname) { /* Also try BuddyPress. */ if (!empty($_pmr["field_1"]) && preg_match("/^(.+?) (.+)\$/", (string) $_pmr["field_1"])) { $lname = trim(preg_replace("/^(.+?) (.+)\$/", "\$2", (string) $_pmr["field_1"])); } } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_names"] && !$fname) { if ($login) { /* Username and empty Last Name. */ eval('$fname = trim ($login); $lname = "";'); } } /**/ $name = trim($fname . " " . $lname); /* Both names. */ /**/ if (!($pass = $password)) { /* Try optimizeMember's generator. */ if (!empty($GLOBALS["ws_plugin__optimizemember_generate_password_return"])) { $pass = (string) $GLOBALS["ws_plugin__optimizemember_generate_password_return"]; } } /**/ if (!$pass) { /* Also try BuddyPress Password. */ if (!empty($_pmr["signup_password"])) { /* BuddyPress? */ $pass = (string) $_pmr["signup_password"]; } } /**/ if ($pass) { !headers_sent() ? delete_user_setting("default_password_nag", $user_id) : null; update_user_option($user_id, "default_password_nag", false, true); } /**/ update_user_option($user_id, "optimizemember_registration_ip", $ip); update_user_option($user_id, "optimizemember_auto_eot_time", $auto_eot_time); update_user_option($user_id, "optimizemember_subscr_gateway", $subscr_gateway); update_user_option($user_id, "optimizemember_subscr_id", $subscr_id); update_user_option($user_id, "optimizemember_custom", $custom); update_user_option($user_id, "optimizemember_notes", $notes); /**/ if (!$user->first_name && $fname) { update_user_meta($user_id, "first_name", $fname); } /**/ if (!$user->last_name && $lname) { update_user_meta($user_id, "last_name", $lname); } /**/ if (!$user->display_name || $user->display_name === $user->user_login) { if ($custom_reg_display_name === "full" && $name) { wp_update_user(array("ID" => $user_id, "display_name" => $name)); } else { if ($custom_reg_display_name === "first" && $fname) { wp_update_user(array("ID" => $user_id, "display_name" => $fname)); } else { if ($custom_reg_display_name === "last" && $lname) { wp_update_user(array("ID" => $user_id, "display_name" => $lname)); } else { if ($custom_reg_display_name === "login" && $login) { wp_update_user(array("ID" => $user_id, "display_name" => $login)); } } } } } /**/ if (is_multisite()) { if (!is_main_site() && strtotime($user->user_registered) >= strtotime("-10 seconds")) { remove_user_from_blog($user_id, $current_site->blog_id); } /**/ if (!get_user_meta($user_id, "optimizemember_originating_blog", true)) { update_user_meta($user_id, "optimizemember_originating_blog", $current_blog->blog_id); } } /**/ if ($current_role !== $role) { /* Only if NOT the current Role. */ $user->set_role($role); } /* optimizeMember. */ /**/ if ($ccaps && preg_match("/^-all/", str_replace("+", "", $ccaps))) { foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_optimizemember_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } } /**/ if ($ccaps && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $ccaps))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $ccaps))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_optimizemember_ccap_" . $ccap); } } } /**/ if (!($fields = array()) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"]) { foreach (json_decode($GLOBALS["WS_PLUGIN__"]["optimizemember"]["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($_pmr["ws_plugin__optimizemember_custom_reg_field_" . $field_var])) { $fields[$field_var] = $_pmr["ws_plugin__optimizemember_custom_reg_field_" . $field_var]; } } } /**/ if (!empty($fields)) { /* Only if NOT empty. */ update_user_option($user_id, "optimizemember_custom_fields", $fields); } /**/ if ($level > 0) { $pr_times = get_user_option("optimizemember_paid_registration_times", $user_id); $pr_times["level"] = empty($pr_times["level"]) ? time() : $pr_times["level"]; $pr_times["level" . $level] = empty($pr_times["level" . $level]) ? time() : $pr_times["level" . $level]; update_user_option($user_id, "optimizemember_paid_registration_times", $pr_times); /* Update now. */ } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_configure_user_registration_front_side_free", get_defined_vars()); do_action("ws_plugin__optimizemember_during_configure_user_registration_front_side", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } else { if (is_blog_admin() && $pagenow === "user-new.php" || c_ws_plugin__optimizemember_utils_conds::pro_is_installed() && c_ws_plugin__optimizemember_pro_remote_ops::is_remote_op("create_user")) { /* Can only be processed through `/user-new.php` in the Admin panel, or through Remote Op: `create_user`. */ /**/ $processed = "yes"; /* Mark this as yes, to indicate that a routine was processed. */ /**/ $current_role = c_ws_plugin__optimizemember_user_access::user_access_role($user); $role = ""; /* Initialize $role to an empty string here, before processing. */ $role = !$role && ($level = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"]) > 0 ? "optimizemember_level" . $level : $role; $role = !$role && ($level = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"]) === "0" ? "subscriber" : $role; $role = !$role && $current_role ? $current_role : $role; /* Use existing Role? */ $role = !$role ? get_option("default_role") : $role; /* Otherwise default. */ /**/ $level = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"]; $level = !$level && preg_match("/^(administrator|editor|author|contributor)\$/i", $role) ? $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"] : $level; $level = !$level && preg_match("/^optimizemember_level[1-9][0-9]*\$/i", $role) ? preg_replace("/^optimizemember_level/", "", $role) : $level; $level = !$level && preg_match("/^subscriber\$/i", $role) ? "0" : $level; $level = !$level ? "0" : $level; /**/ $ccaps = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_ccaps"]; /**/ $email = $user->user_email; $login = $user->user_login; $ip = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_registration_ip"]; $custom = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_custom"]; $subscr_id = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_id"]; $subscr_gateway = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_gateway"]; $cv = preg_split("/\\|/", (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_custom"]); /**/ $auto_eot_time = ($eot = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_auto_eot_time"]) ? strtotime($eot) : ""; $notes = (string) @$_pmr["ws_plugin__optimizemember_custom_reg_field_optimizemember_notes"]; /**/ $opt_in = !empty($_pmr["ws_plugin__optimizemember_custom_reg_field_opt_in"]) ? true : false; /**/ if (!($fname = $user->first_name)) { /* `Users -> Add New`. */ if (!empty($_pmr["ws_plugin__optimizemember_custom_reg_field_first_name"])) { $fname = (string) $_pmr["ws_plugin__optimizemember_custom_reg_field_first_name"]; } } /**/ if (!($lname = $user->last_name)) { /* `Users -> Add New`. */ if (!empty($_pmr["ws_plugin__optimizemember_custom_reg_field_last_name"])) { $lname = (string) $_pmr["ws_plugin__optimizemember_custom_reg_field_last_name"]; } } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_names"] && !$fname) { if ($login) { /* Username and empty Last Name. */ eval('$fname = trim ($login); $lname = "";'); } } /**/ $name = trim($fname . " " . $lname); /* Both names. */ /**/ if (!($pass = $password)) { /* Try optimizeMember's generator. */ if (!empty($GLOBALS["ws_plugin__optimizemember_generate_password_return"])) { $pass = (string) $GLOBALS["ws_plugin__optimizemember_generate_password_return"]; } } /**/ if (!$pass) { /* Also try the `Users -> Add New` form. */ if (!empty($_pmr["pass1"])) { /* Field in `/user-new.php`. */ $pass = (string) $_pmr["pass1"]; } } /**/ if ($pass) { !headers_sent() ? delete_user_setting("default_password_nag", $user_id) : null; update_user_option($user_id, "default_password_nag", false, true); } /**/ update_user_option($user_id, "optimizemember_registration_ip", $ip); update_user_option($user_id, "optimizemember_auto_eot_time", $auto_eot_time); update_user_option($user_id, "optimizemember_subscr_gateway", $subscr_gateway); update_user_option($user_id, "optimizemember_subscr_id", $subscr_id); update_user_option($user_id, "optimizemember_custom", $custom); update_user_option($user_id, "optimizemember_notes", $notes); /**/ if (!$user->first_name && $fname) { update_user_meta($user_id, "first_name", $fname); } /**/ if (!$user->last_name && $lname) { update_user_meta($user_id, "last_name", $lname); } /**/ if (!$user->display_name || $user->display_name === $user->user_login) { if ($custom_reg_display_name === "full" && $name) { wp_update_user(array("ID" => $user_id, "display_name" => $name)); } else { if ($custom_reg_display_name === "first" && $fname) { wp_update_user(array("ID" => $user_id, "display_name" => $fname)); } else { if ($custom_reg_display_name === "last" && $lname) { wp_update_user(array("ID" => $user_id, "display_name" => $lname)); } else { if ($custom_reg_display_name === "login" && $login) { wp_update_user(array("ID" => $user_id, "display_name" => $login)); } } } } } /**/ if (is_multisite()) { if (!is_main_site() && strtotime($user->user_registered) >= strtotime("-10 seconds")) { remove_user_from_blog($user_id, $current_site->blog_id); } /* No Main Site Role. */ /**/ if (!get_user_meta($user_id, "optimizemember_originating_blog", true)) { /* Recorded yet? */ update_user_meta($user_id, "optimizemember_originating_blog", $current_blog->blog_id); } } /**/ if ($current_role !== $role) { /* Only if NOT the current Role. */ $user->set_role($role); } /* optimizeMember. */ /**/ if ($ccaps && preg_match("/^-all/", str_replace("+", "", $ccaps))) { foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_optimizemember_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } } /**/ if ($ccaps && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $ccaps))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $ccaps))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_optimizemember_ccap_" . $ccap); } } } /**/ if (!($fields = array()) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"]) { foreach (json_decode($GLOBALS["WS_PLUGIN__"]["optimizemember"]["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($_pmr["ws_plugin__optimizemember_custom_reg_field_" . $field_var])) { $fields[$field_var] = $_pmr["ws_plugin__optimizemember_custom_reg_field_" . $field_var]; } } } /**/ if (!empty($fields)) { /* Only if NOT empty. */ update_user_option($user_id, "optimizemember_custom_fields", $fields); } /**/ if ($level > 0) { $pr_times = get_user_option("optimizemember_paid_registration_times", $user_id); $pr_times["level"] = empty($pr_times["level"]) ? time() : $pr_times["level"]; $pr_times["level" . $level] = empty($pr_times["level" . $level]) ? time() : $pr_times["level" . $level]; update_user_option($user_id, "optimizemember_paid_registration_times", $pr_times); /* Update now. */ } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_configure_user_registration_admin_side", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } } } /**/ if ($processed === "yes") { if ($urls = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["registration_notification_urls"]) { /**/ foreach (preg_split("/[\r\n\t]+/", $urls) as $url) { /* Notify each of the URLs. */ /**/ if ($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) { if ($url = preg_replace("/%%role%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($role)), $url)) { if ($url = preg_replace("/%%level%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($level)), $url)) { if ($url = preg_replace("/%%ccaps%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($ccaps)), $url)) { if ($url = preg_replace("/%%auto_eot_time%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($auto_eot_time)), $url)) { if ($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($fname)), $url)) { if ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($lname)), $url)) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($name)), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($login)), $url)) { if ($url = preg_replace("/%%user_pass%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($pass)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_id)), $url)) { foreach ($fields as $var => $val) { /* Custom Fields. */ if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(maybe_serialize($val))), $url))) { break; } } /**/ if ($url = trim(preg_replace("/%%(.+?)%%/i", "", $url))) { c_ws_plugin__optimizemember_utils_urls::remote($url); } } } } } } } } } } } } } } } } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["registration_notification_recipients"]) { $email_configs_were_on = c_ws_plugin__optimizemember_email_configs::email_config_status(); c_ws_plugin__optimizemember_email_configs::email_config_release(); /**/ $msg = $sbj = "( optimizeMember / API Notification Email ) - Registration"; $msg .= "\n\n"; /* Spacing in the message body. */ /**/ $msg .= "role: %%role%%\n"; $msg .= "level: %%level%%\n"; $msg .= "ccaps: %%ccaps%%\n"; $msg .= "auto_eot_time: %%auto_eot_time%%\n"; $msg .= "user_first_name: %%user_first_name%%\n"; $msg .= "user_last_name: %%user_last_name%%\n"; $msg .= "user_full_name: %%user_full_name%%\n"; $msg .= "user_email: %%user_email%%\n"; $msg .= "user_login: %%user_login%%\n"; $msg .= "user_pass: %%user_pass%%\n"; $msg .= "user_ip: %%user_ip%%\n"; $msg .= "user_id: %%user_id%%\n"; /**/ foreach ($fields as $var => $val) { $msg .= $var . ": %%" . $var . "%%\n"; } /**/ $msg .= "cv0: %%cv0%%\n"; $msg .= "cv1: %%cv1%%\n"; $msg .= "cv2: %%cv2%%\n"; $msg .= "cv3: %%cv3%%\n"; $msg .= "cv4: %%cv4%%\n"; $msg .= "cv5: %%cv5%%\n"; $msg .= "cv6: %%cv6%%\n"; $msg .= "cv7: %%cv7%%\n"; $msg .= "cv8: %%cv8%%\n"; $msg .= "cv9: %%cv9%%"; /**/ if ($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) { if ($msg = preg_replace("/%%role%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($role), $msg)) { if ($msg = preg_replace("/%%level%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($level), $msg)) { if ($msg = preg_replace("/%%ccaps%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($ccaps), $msg)) { if ($msg = preg_replace("/%%auto_eot_time%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($auto_eot_time), $msg)) { if ($msg = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($fname), $msg)) { if ($msg = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($lname), $msg)) { if ($msg = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($name), $msg)) { if ($msg = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($email), $msg)) { if ($msg = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($login), $msg)) { if ($msg = preg_replace("/%%user_pass%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($pass), $msg)) { if ($msg = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($ip), $msg)) { if ($msg = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_id), $msg)) { foreach ($fields as $var => $val) { /* Custom Fields. */ if (!($msg = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(maybe_serialize($val)), $msg))) { break; } } /**/ if ($sbj && ($msg = trim(preg_replace("/%%(.+?)%%/i", "", $msg)))) { /* Still have a ``$sbj`` and a ``$msg``? */ /**/ foreach (c_ws_plugin__optimizemember_utils_strings::parse_emails($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["registration_notification_recipients"]) as $recipient) { wp_mail($recipient, apply_filters("ws_plugin__optimizemember_registration_notification_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__optimizemember_registration_notification_email_msg", $msg, get_defined_vars()), "Content-Type: text/plain; charset=utf-8"); } } } } } } } } } } } } } } } /**/ if ($email_configs_were_on) { /* Back on? */ c_ws_plugin__optimizemember_email_configs::email_config(); } } /**/ if (!empty($GLOBALS["ws_plugin__optimizemember_registration_return_url"]) && ($url = $GLOBALS["ws_plugin__optimizemember_registration_return_url"])) { /**/ if ($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) { if ($url = preg_replace("/%%role%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($role)), $url)) { if ($url = preg_replace("/%%level%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($level)), $url)) { if ($url = preg_replace("/%%ccaps%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($ccaps)), $url)) { if ($url = preg_replace("/%%auto_eot_time%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($auto_eot_time)), $url)) { if ($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($fname)), $url)) { if ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($lname)), $url)) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($name)), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($login)), $url)) { if ($url = preg_replace("/%%user_pass%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($pass)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_id)), $url)) { foreach ($fields as $var => $val) { /* Custom Fields. */ if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(maybe_serialize($val))), $url))) { break; } } /**/ if ($url = trim($url)) { /* Preserve remaining Replacements; because the parent routine may perform replacements too. */ $GLOBALS["ws_plugin__optimizemember_registration_return_url"] = $url; } } } } } } } } } } } } } } } /**/ c_ws_plugin__optimizemember_list_servers::process_list_servers($role, $level, $login, $pass, $email, $fname, $lname, $ip, $opt_in, true, $user_id); /* Suppress errors here in case this routine is fired in unexpected locations; or with odd output buffering techniques. @todo It may also be impossible to delete cookies when fired inside: `/wp-activate.php`. */ if (!headers_sent()) { @setcookie("optimizemember_subscr_gateway", "", time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . @setcookie("optimizemember_subscr_gateway", "", time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); @setcookie("optimizemember_subscr_id", "", time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . @setcookie("optimizemember_subscr_id", "", time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); @setcookie("optimizemember_custom", "", time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . @setcookie("optimizemember_custom", "", time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); @setcookie("optimizemember_item_number", "", time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . @setcookie("optimizemember_item_number", "", time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN); } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_configure_user_registration", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } } } } } } } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_after_configure_user_registration", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ return; /* Return for uniformity. */ }
/** * Widget display. * * @package optimizeMember\Widgets * @since 1.5 * * @param array $args Optional. An array of basic settings. * @param array $instance Optional. An array of options for this instance. * @return null */ public function widget($args = FALSE, $instance = FALSE) { $options = c_ws_plugin__optimizemember_pro_login_widget::configure_options_and_their_defaults((array) $instance); /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_pro_login_widget_before_display", get_defined_vars(), $this); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ echo $args["before_widget"]; /* OK, here we go into this widget. */ /**/ if (is_user_logged_in() && strlen($options["profile_title"]) || !is_user_logged_in() && strlen($options["title"])) { echo $args["before_title"] . apply_filters("widget_title", $options[is_user_logged_in() ? "profile_title" : "title"]) . $args["after_title"]; } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_pro_login_widget_during_display_before", get_defined_vars(), $this); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if (!is_user_logged_in()) { $links = c_ws_plugin__optimizemember_cache::cached_page_links(); /**/ $ops_page = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]; /**/ if ($ops_page && is_page($ops_page) && !empty($_GET["_optimizemember_seeking"]["_uri"])) { $seeking = trim(base64_decode(trim(stripslashes((string) $_GET["_optimizemember_seeking"]["_uri"])))); } /**/ $options["login_redirect"] = $options["login_redirect"] === "%%previous%%" && empty($seeking) && $ops_page && is_page($ops_page) ? "" : $options["login_redirect"]; $options["login_redirect"] = $options["login_redirect"] === "%%previous%%" && empty($seeking) && is_front_page() ? "" : $options["login_redirect"]; $options["login_redirect"] = $options["login_redirect"] === "%%previous%%" && !empty($seeking) && $seeking === "/" ? "" : $options["login_redirect"]; /**/ $redirect_to = $options["login_redirect"]; $redirect_to = preg_replace("/%%previous%%/i", !empty($seeking) ? $seeking : $_SERVER["REQUEST_URI"], $redirect_to); $redirect_to = preg_replace("/%%home%%/i", home_url("/"), $redirect_to); /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget">' . "\n"; /**/ echo '<form method="post" action="' . esc_url(site_url('wp-login.php', 'login_post')) . '" class="ws-plugin--optimizemember-pro-login-widget-form">' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-username">' . "\n"; echo '<label for="ws-plugin--optimizemember-pro-login-widget-username">' . _x("Username", "s2member-front", "s2member") . ':</label><br />' . "\n"; echo '<input type="text" name="log" id="ws-plugin--optimizemember-pro-login-widget-username" title="Username" />' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-password">' . "\n"; echo '<label for="ws-plugin--optimizemember-pro-login-widget-password">' . _x("Password", "s2member-front", "s2member") . ':</label><br />' . "\n"; echo '<input type="password" name="pwd" id="ws-plugin--optimizemember-pro-login-widget-password" title="Password" />' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-lost-password">' . "\n"; $reg_cookies_ok_url = is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && is_main_site() ? c_ws_plugin__optimizemember_utils_urls::wp_signup_url() : c_ws_plugin__optimizemember_utils_urls::wp_register_url(); echo $options["signup_url"] ? '<a href="' . esc_attr($options["signup_url"] !== "%%automatic%%" ? $options["signup_url"] : (c_ws_plugin__optimizemember_register_access::reg_cookies_ok() ? $reg_cookies_ok_url : $links["membership_options_page"])) . '" tabindex="-1">' . _x("signup now", "s2member-front", "s2member") . '</a> | ' : ''; echo '<a href="' . esc_attr(wp_lostpassword_url()) . '" tabindex="-1">' . _x("forgot password?", "s2member-front", "s2member") . '</a>' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-remember-me">' . "\n"; echo '<label><input type="checkbox" name="rememberme" value="forever" />' . _x("Remember Me", "s2member-front", "s2member") . '</label>' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-submit">' . "\n"; echo $redirect_to ? '<input type="hidden" name="redirect_to" value="' . esc_attr($redirect_to) . '" />' . "\n" : ''; echo '<input type="submit" value="' . esc_attr(_x("Log Me In", "s2member-front", "s2member")) . '" />' . "\n"; echo '</div>' . "\n"; /**/ echo '</form>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-code">' . "\n"; /**/ if (is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && !is_main_site()) { echo do_shortcode(trim($options["logged_out_code"])); } else { /* Otherwise, it's OK to execute PHP code. */ echo do_shortcode(c_ws_plugin__optimizemember_utilities::evl(trim($options["logged_out_code"]))); } /**/ echo '</div>' . "\n"; /**/ echo '<div style="clear:both;"></div>' . "\n"; /**/ echo '</div>' . "\n"; } else { if (is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) && ($user_id = $user->ID)) { $links = c_ws_plugin__optimizemember_cache::cached_page_links(); /**/ $ops_page = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]; $welcome_page = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"]; /**/ $options["logout_redirect"] = $options["logout_redirect"] === "%%previous%%" && $ops_page && is_page($ops_page) ? "" : $options["logout_redirect"]; $options["logout_redirect"] = $options["logout_redirect"] === "%%previous%%" && $welcome_page && is_page($welcome_page) ? "" : $options["logout_redirect"]; /**/ $redirect_to = preg_replace("/%%previous%%/i", $_SERVER["REQUEST_URI"], $redirect_to = $options["logout_redirect"]); $redirect_to = preg_replace("/%%home%%/i", home_url("/"), $redirect_to); /**/ echo '<div id="ws-plugin--optimizemember-pro-login-widget" class="ws-plugin--optimizemember-pro-login-widget">' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary">' . "\n"; /**/ echo $options["display_gravatar"] ? ($options["link_gravatar"] ? '<a href="http://www.gravatar.com/" target="_blank">' : '') . get_avatar($user_id, 48) . ($options["link_gravatar"] ? '</a>' : '') . "\n" : ''; /**/ echo $options["display_name"] ? '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-name">' . esc_html($user->display_name) . '</div>' . "\n" : ''; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-code">' . "\n"; /**/ if (is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && !is_main_site()) { echo do_shortcode(trim($options["logged_in_code"])); } else { /* Otherwise, it's OK to execute PHP code. */ echo do_shortcode(c_ws_plugin__optimizemember_utilities::evl(trim($options["logged_in_code"]))); } /**/ echo '</div>' . "\n"; /**/ echo $options["my_account_url"] ? '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-my-account"><a href="' . esc_attr($options["my_account_url"] !== "%%automatic%%" ? c_ws_plugin__optimizemember_login_redirects::fill_login_redirect_rc_vars($options["my_account_url"]) : (($login_redirection_url = c_ws_plugin__optimizemember_login_redirects::login_redirection_url($user)) ? $login_redirection_url : $links["login_welcome_page"])) . '">' . _x("My Account", "s2member-front", "s2member") . '</a></div>' . "\n" : ''; echo $options["my_profile_url"] ? '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-edit-profile"><a href="' . ($options["my_profile_url"] !== "%%automatic%%" ? esc_attr(c_ws_plugin__optimizemember_login_redirects::fill_login_redirect_rc_vars($options["my_profile_url"])) : esc_attr(site_url("/?optimizemember_profile=1")) . '" onclick="if(!window.open(\'' . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(esc_attr(site_url("/?optimizemember_profile=1"))) . '\',\'_profile\', \'width=600,height=400,left=\'+((screen.width/2)-(600/2))+\',screenX=\'+((screen.width/2)-(600/2))+\',top=\'+((screen.height/2)-(400/2))+\',screenY=\'+((screen.height/2)-(400/2))+\',location=0,menubar=0,toolbar=0,status=0,scrollbars=1,resizable=1\')) alert(\'' . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("Please disable popup blockers and try again!", "s2member-front", "s2member")) . '\'); return false;') . '">' . _x("Edit My Profile", "s2member-front", "s2member") . '</a></div>' . "\n" : ''; echo '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-logout"><a href="' . esc_attr(wp_logout_url($redirect_to)) . '">' . _x("Logout", "s2member-front", "s2member") . '</a></div>' . "\n"; /**/ echo '<div style="clear:both;"></div>' . "\n"; /**/ echo '</div>' . "\n"; /**/ echo '</div>' . "\n"; } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_pro_login_widget_during_display_after", get_defined_vars(), $this); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ echo $args["after_widget"]; /**/ do_action("ws_plugin__optimizemember_pro_login_widget_after_display", get_defined_vars(), $this); /**/ return; /* Return for uniformity. */ }
/** * Allows access to the main Multisite Registration Form. * * @package optimizeMember\Option_Forces * @since 3.5 * * @attaches-to ``add_filter("pre_site_option_registration");`` * * @param str $users_can_register Expects *( `none`, `all`, `blog`, `user` )*, passed through by the Filter. * @return str One of `none|all|user`; depending on several factors. */ public static function check_mms_register_access($users_can_register = FALSE) { global $wpdb; /* Global database object reference */ global $current_site, $current_blog; /* For Multisite support. */ /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_before_check_register_access", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $by_default = $users_can_register = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["mms_registration_grants"]; /**/ if (c_ws_plugin__optimizemember_utils_conds::bp_is_installed() && is_multisite() && !c_ws_plugin__optimizemember_utils_conds::is_multisite_farm()) { return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = c_ws_plugin__optimizemember_option_forces::check_register_access() ? "user" : "none", get_defined_vars()); } else { if (!is_multisite() || !c_ws_plugin__optimizemember_utils_conds::is_multisite_farm()) { /* Blog Farm? */ return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "none", get_defined_vars()); } else { if (!is_network_admin() && $users_can_register !== "all") { if (is_main_site() && current_user_can("create_users") || is_super_admin()) { return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "all", get_defined_vars()); } else { if (is_user_logged_in() && is_object($user = wp_get_current_user()) && $user->ID && is_object($user = new WP_User($user->ID, $current_site->blog_id)) && $user->ID && $user->has_cap("access_optimizemember_level1")) { $mms_options = c_ws_plugin__optimizemember_utilities::mms_options(); $blogs_allowed = (int) @$mms_options["mms_registration_blogs_level" . c_ws_plugin__optimizemember_user_access::user_access_level($user)]; $user_blogs = is_array($blogs = get_blogs_of_user($user->ID)) ? count($blogs) - 1 : 0; /**/ $user_blogs = $user_blogs >= 0 ? $user_blogs : 0; /* NOT less than zero. */ $blogs_allowed = $blogs_allowed >= 0 ? $blogs_allowed : 0; /**/ if ($user_blogs < $blogs_allowed) { return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "all", get_defined_vars()); } } else { if (!is_user_logged_in() && is_main_site() && ($reg_cookies = c_ws_plugin__optimizemember_register_access::reg_cookies_ok()) && extract($reg_cookies)) { if (preg_match($GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["membership_item_number_w_level_regex"], $item_number, $m) && !empty($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["mms_registration_blogs_level" . $m[1]])) { return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "all", get_defined_vars()); } else { return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "user", get_defined_vars()); } } } } } else { if (!is_network_admin() && $users_can_register === "all") { if (is_user_logged_in() && !(is_main_site() && current_user_can("create_users")) && !is_super_admin() && is_object($user = wp_get_current_user()) && $user->ID && is_object($user = new WP_User($user->ID, $current_site->blog_id)) && $user->ID) { $mms_options = c_ws_plugin__optimizemember_utilities::mms_options(); $blogs_allowed = (int) @$mms_options["mms_registration_blogs_level" . c_ws_plugin__optimizemember_user_access::user_access_level($user)]; $user_blogs = is_array($blogs = get_blogs_of_user($user->ID)) ? count($blogs) - 1 : 0; /**/ $user_blogs = $user_blogs >= 0 ? $user_blogs : 0; /* NOT less than zero. */ $blogs_allowed = $blogs_allowed >= 0 ? $blogs_allowed : 0; /**/ if ($user_blogs >= $blogs_allowed) { return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "none", get_defined_vars()); } } } } } } /**/ return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register, get_defined_vars()); }
/** * optimizeMember's PayPal IPN handler ( inner processing routine ). * * @package optimizeMember\PayPal * @since 110720 * * @param array $vars Required. An array of defined variables passed by {@link optimizeMember\PayPal\c_ws_plugin__optimizemember_paypal_notify_in::paypal_notify()}. * @return array|bool The original ``$paypal`` array passed in ( extracted ) from ``$vars``, or false when conditions do NOT apply. * * @todo Optimize with ``empty()`` and ``isset()``. */ public static function cp($vars = array()) { extract($vars); /* Extract all vars passed in from: ``c_ws_plugin__optimizemember_paypal_notify_in::paypal_notify()``. */ /**/ if (!empty($paypal["txn_type"]) && preg_match("/^(web_accept|subscr_signup)\$/i", $paypal["txn_type"]) && (!empty($paypal["item_number"]) && preg_match($GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"])) && (!empty($paypal["subscr_id"]) || !empty($paypal["txn_id"]) && ($paypal["subscr_id"] = $paypal["txn_id"])) && (empty($paypal["payment_status"]) || empty($payment_status_issues) || !preg_match($payment_status_issues, $paypal["payment_status"])) && !empty($paypal["payer_email"])) { eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_before_subscr_signup", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if (!get_transient($transient_ipn = "s2m_ipn_" . md5("optimizemember_transient_" . $_paypal_s)) && set_transient($transient_ipn, time(), 31556926 * 10)) { $paypal["optimizemember_log"][] = "optimizeMember `txn_type` identified as ( `web_accept|subscr_signup` )."; /**/ list($paypal["level"], $paypal["ccaps"], $paypal["eotper"]) = preg_split("/\\:/", $paypal["item_number"], 3); /**/ $paypal["ip"] = preg_match("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"] ? $paypal["option_selection2"] : ""; $paypal["ip"] = !$paypal["ip"] && preg_match("/^[a-z0-9]+~[0-9\\.]+\$/i", $paypal["invoice"]) ? preg_replace("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"]; /**/ $paypal["period1"] = preg_match("/^[1-9]/", $paypal["period1"]) ? $paypal["period1"] : "0 D"; /* Defaults to "0 D" ( zero days ). */ $paypal["mc_amount1"] = strlen($paypal["mc_amount1"]) && $paypal["mc_amount1"] > 0 ? $paypal["mc_amount1"] : "0.00"; /* "0.00". */ /**/ if (preg_match("/^web_accept\$/i", $paypal["txn_type"])) { $paypal["period3"] = $paypal["eotper"] ? $paypal["eotper"] : "1 L"; /* 1 Lifetime. */ $paypal["mc_amount3"] = $paypal["mc_gross"]; /* The "Buy Now" amount is the full gross. */ } /**/ $paypal["initial_term"] = preg_match("/^[1-9]/", $paypal["period1"]) ? $paypal["period1"] : "0 D"; /* Defaults to "0 D" ( zero days ). */ $paypal["initial"] = strlen($paypal["mc_amount1"]) && preg_match("/^[1-9]/", $paypal["period1"]) ? $paypal["mc_amount1"] : $paypal["mc_amount3"]; $paypal["regular"] = $paypal["mc_amount3"]; /* This is the Regular Payment Amount that is charged to the Customer. Always required by PayPal. */ $paypal["regular_term"] = $paypal["period3"]; /* This is just set to keep a standard; this way both initial_term & regular_term are available. */ $paypal["recurring"] = $paypal["recurring"] ? $paypal["mc_amount3"] : "0"; /* If non-recurring, this should be zero, otherwise Regular. */ /**/ eval('$ipn_signup_vars = $paypal; unset($ipn_signup_vars["optimizemember_log"]);'); /* Create array of IPN signup vars w/o optimizemember_log. */ /* New Subscription with advanced update vars ( option_name1, option_selection1 )? These variables are used in Subscr. Modifications. */ if (preg_match("/(referenc|associat|updat|upgrad)/i", $paypal["option_name1"]) && $paypal["option_selection1"]) { eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_before_subscr_signup_w_update_vars", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $paypal["optimizemember_log"][] = "optimizeMember `txn_type` identified as ( `web_accept|subscr_signup` ) w/ update vars."; /**/ /* Check for both the old & new subscr_id's, just in case the Return routine already changed it. */ if (($user_id = c_ws_plugin__optimizemember_utils_users::get_user_id_with($paypal["subscr_id"], $paypal["option_selection1"])) && is_object($user = new WP_User($user_id)) && $user->ID) { if (!$user->has_cap("administrator")) { $processing = $modifying = $during = true; /* Yes, we ARE processing this. */ /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_during_before_subscr_signup_w_update_vars", get_defined_vars()); do_action("ws_plugin__optimizemember_during_collective_mods", $user_id, get_defined_vars(), "ipn-upgrade-downgrade", "modification", "optimizemember_level" . $paypal["level"]); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $fields = get_user_option("optimizemember_custom_fields", $user_id); /* These will be needed in the routines below. */ $user_reg_ip = get_user_option("optimizemember_registration_ip", $user_id); /* Original IP during Registration. */ $user_reg_ip = $paypal["ip"] = $user_reg_ip ? $user_reg_ip : $paypal["ip"]; /* Now merge conditionally. */ /**/ if (is_multisite() && !is_user_member_of_blog($user_id)) { add_existing_user_to_blog(array("user_id" => $user_id, "role" => "optimizemember_level" . $paypal["level"])); $user = new WP_User($user_id); } /**/ $current_role = c_ws_plugin__optimizemember_user_access::user_access_role($user); /**/ if ($current_role !== "optimizemember_level" . $paypal["level"]) { /* Only if we need to. */ $user->set_role("optimizemember_level" . $paypal["level"]); } /* (upgrade/downgrade) */ /**/ if ($paypal["ccaps"] && preg_match("/^-all/", str_replace("+", "", $paypal["ccaps"]))) { foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_optimizemember_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } } /**/ if ($paypal["ccaps"] && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $paypal["ccaps"]))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $paypal["ccaps"]))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_optimizemember_ccap_" . $ccap); } } } /**/ update_user_option($user_id, "optimizemember_subscr_gateway", $paypal["subscr_gateway"]); update_user_option($user_id, "optimizemember_subscr_id", $paypal["subscr_id"]); update_user_option($user_id, "optimizemember_custom", $paypal["custom"]); /**/ if (!get_user_option("optimizemember_registration_ip", $user_id)) { update_user_option($user_id, "optimizemember_registration_ip", $paypal["ip"]); } /**/ update_user_option($user_id, "optimizemember_ipn_signup_vars", $ipn_signup_vars); /**/ delete_user_option($user_id, "optimizemember_file_download_access_log"); /**/ if (preg_match("/^web_accept\$/i", $paypal["txn_type"]) && $paypal["eotper"]) { update_user_option($user_id, "optimizemember_auto_eot_time", $eot_time = c_ws_plugin__optimizemember_utils_time::auto_eot_time("", "", "", $paypal["eotper"], "", get_user_option("optimizemember_auto_eot_time", $user_id))); $paypal["optimizemember_log"][] = "Automatic EOT ( End Of Term ) Time set to: " . date("D M j, Y g:i:s a T", $eot_time) . "."; } else { /* Otherwise, we need to clear the Auto-EOT Time. */ delete_user_option($user_id, "optimizemember_auto_eot_time"); } /**/ $pr_times = get_user_option("optimizemember_paid_registration_times", $user_id); $pr_times["level"] = !$pr_times["level"] ? time() : $pr_times["level"]; /* Preserves existing. */ $pr_times["level" . $paypal["level"]] = !$pr_times["level" . $paypal["level"]] ? time() : $pr_times["level" . $paypal["level"]]; update_user_option($user_id, "optimizemember_paid_registration_times", $pr_times); /* Update now. */ /**/ c_ws_plugin__optimizemember_user_notes::clear_user_note_lines($user_id, "/^Demoted by optimizeMember\\:/"); /**/ $paypal["optimizemember_log"][] = "optimizeMember Level/Capabilities updated w/ advanced update routines."; /**/ c_ws_plugin__optimizemember_email_configs::email_config() . wp_mail($paypal["payer_email"], apply_filters("ws_plugin__optimizemember_modification_email_sbj", _x("Thank you! Your account has been updated.", "s2member-front", "s2member"), get_defined_vars()), apply_filters("ws_plugin__optimizemember_modification_email_msg", _x("Thank you! You've been updated to:", "s2member-front", "s2member") . "\n" . $paypal["item_name"] . "\n\n" . _x("Please log back in now.", "s2member-front", "s2member") . "\n" . wp_login_url(), get_defined_vars()), "From: \"" . preg_replace('/"/', "'", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8") . c_ws_plugin__optimizemember_email_configs::email_config_release(); /**/ $paypal["optimizemember_log"][] = "Modification Confirmation Email sent to Customer, with a URL that provides them with a way to log back in."; /**/ if ($processing && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["modification_notification_urls"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { foreach (preg_split("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["modification_notification_urls"]) as $url) { /**/ if (($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) && ($url = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["subscr_id"])), $url))) { if (($url = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["initial"])), $url)) && ($url = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["regular"])), $url)) && ($url = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["recurring"])), $url))) { if (($url = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["initial_term"])), $url)) && ($url = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["regular_term"])), $url))) { if (($url = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_number"])), $url)) && ($url = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_name"])), $url))) { if (($url = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["first_name"])), $url)) && ($url = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["last_name"])), $url))) { if ($url = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $url)) { if ($url = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["payer_email"])), $url)) { /**/ if (($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->last_name)), $url))) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($user->first_name . " " . $user->last_name))), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->user_email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->user_login)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_id)), $url)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { /* Custom Registration/Profile Fields. */ if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(maybe_serialize($val))), $url))) { break; } } } /**/ if ($url = trim(preg_replace("/%%(.+?)%%/i", "", $url))) { c_ws_plugin__optimizemember_utils_urls::remote($url); } } } } } } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Modification Notification URLs have been processed."; } /**/ if ($processing && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["modification_notification_recipients"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { $msg = $sbj = "( optimizeMember / API Notification Email ) - Modification"; $msg .= "\n\n"; /* Spacing in the message body. */ /**/ $msg .= "subscr_id: %%subscr_id%%\n"; $msg .= "initial: %%initial%%\n"; $msg .= "regular: %%regular%%\n"; $msg .= "recurring: %%recurring%%\n"; $msg .= "initial_term: %%initial_term%%\n"; $msg .= "regular_term: %%regular_term%%\n"; $msg .= "item_number: %%item_number%%\n"; $msg .= "item_name: %%item_name%%\n"; $msg .= "first_name: %%first_name%%\n"; $msg .= "last_name: %%last_name%%\n"; $msg .= "full_name: %%full_name%%\n"; $msg .= "payer_email: %%payer_email%%\n"; /**/ $msg .= "user_first_name: %%user_first_name%%\n"; $msg .= "user_last_name: %%user_last_name%%\n"; $msg .= "user_full_name: %%user_full_name%%\n"; $msg .= "user_email: %%user_email%%\n"; $msg .= "user_login: %%user_login%%\n"; $msg .= "user_ip: %%user_ip%%\n"; $msg .= "user_id: %%user_id%%\n"; /**/ if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { $msg .= $var . ": %%" . $var . "%%\n"; } } /**/ $msg .= "cv0: %%cv0%%\n"; $msg .= "cv1: %%cv1%%\n"; $msg .= "cv2: %%cv2%%\n"; $msg .= "cv3: %%cv3%%\n"; $msg .= "cv4: %%cv4%%\n"; $msg .= "cv5: %%cv5%%\n"; $msg .= "cv6: %%cv6%%\n"; $msg .= "cv7: %%cv7%%\n"; $msg .= "cv8: %%cv8%%\n"; $msg .= "cv9: %%cv9%%"; /**/ if (($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) && ($msg = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $msg))) { if (($msg = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $msg)) && ($msg = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $msg)) && ($msg = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $msg))) { if (($msg = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $msg)) && ($msg = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $msg))) { if (($msg = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $msg)) && ($msg = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $msg))) { if (($msg = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $msg)) && ($msg = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $msg))) { if ($msg = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $msg)) { if ($msg = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $msg)) { /**/ if (($msg = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->last_name), $msg))) { if ($msg = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($user->first_name . " " . $user->last_name)), $msg)) { if ($msg = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->user_email), $msg)) { if ($msg = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->user_login), $msg)) { if ($msg = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_reg_ip), $msg)) { if ($msg = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_id), $msg)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { /* Custom Registration/Profile Fields. */ if (!($msg = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(maybe_serialize($val)), $msg))) { break; } } } /**/ if ($sbj && ($msg = trim(preg_replace("/%%(.+?)%%/i", "", $msg)))) { /* Still have a ``$sbj`` and a ``$msg``? */ /**/ foreach (c_ws_plugin__optimizemember_utils_strings::parse_emails($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["modification_notification_recipients"]) as $recipient) { wp_mail($recipient, apply_filters("ws_plugin__optimizemember_modification_notification_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__optimizemember_modification_notification_email_msg", $msg, get_defined_vars()), "Content-Type: text/plain; charset=utf-8"); } } } } } } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Modification Notification Emails have been processed."; } /**/ if ($processing && ($code = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["modification_tracking_codes"]) && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { if (($code = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $code)) && ($code = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $code))) { if (($code = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $code)) && ($code = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $code)) && ($code = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $code))) { if (($code = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $code)) && ($code = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $code))) { if (($code = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $code)) && ($code = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $code))) { if (($code = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $code)) && ($code = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $code))) { if ($code = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $code)) { if ($code = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $code)) { if (($code = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->first_name), $code)) && ($code = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->last_name), $code))) { if ($code = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($user->first_name . " " . $user->last_name)), $code)) { if ($code = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->user_email), $code)) { if ($code = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->user_login), $code)) { if ($code = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_reg_ip), $code)) { if ($code = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_id), $code)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { /* Custom Registration/Profile Fields. */ if (!($code = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(maybe_serialize($val)), $code))) { break; } } } /**/ if ($code = trim(preg_replace("/%%(.+?)%%/i", "", $code))) { $paypal["optimizemember_log"][] = "Storing Modification Tracking Codes into a Transient Queue. These will be processed on-site."; set_transient("s2m_" . md5("optimizemember_transient_modification_tracking_codes_" . $paypal["subscr_id"]), $code, 43200); } } } } } } } } } } } } } } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_during_subscr_signup_w_update_vars", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } else { $paypal["optimizemember_log"][] = "Unable to modify Subscription. The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access."; } } else { $paypal["optimizemember_log"][] = "Unable to modify Subscription. Could not get the existing User ID from the DB. Please check the `on0` and `os0` variables in your Button Code."; } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_after_subscr_signup_w_update_vars", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } else { eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_before_subscr_signup_wo_update_vars", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $paypal["optimizemember_log"][] = "optimizeMember `txn_type` identified as ( `web_accept|subscr_signup` ) w/o update vars."; /**/ if (($registration_url = c_ws_plugin__optimizemember_register_access::register_link_gen($paypal["subscr_gateway"], $paypal["subscr_id"], $paypal["custom"], $paypal["item_number"])) && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { $paypal["optimizemember_log"][] = "DEBUG: Registration link generated: " . $registration_url . "."; $processing = $during = true; /* Yes, we ARE processing this. */ /**/ $sbj = preg_replace("/%%registration_url%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($registration_url), $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"][($_GET["optimizemember_paypal_proxy"] && preg_match("/pro-emails/", $_GET["optimizemember_paypal_proxy_use"]) ? "pro_" : "") . "signup_email_subject"]); $msg = preg_replace("/%%registration_url%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($registration_url), $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"][($_GET["optimizemember_paypal_proxy"] && preg_match("/pro-emails/", $_GET["optimizemember_paypal_proxy_use"]) ? "pro_" : "") . "signup_email_message"]); $rec = preg_replace("/%%registration_url%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($registration_url), $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"][($_GET["optimizemember_paypal_proxy"] && preg_match("/pro-emails/", $_GET["optimizemember_paypal_proxy_use"]) ? "pro_" : "") . "signup_email_recipients"]); $paypal["optimizemember_log"][] = "DEBUG: Signup Email Recipients: " . $rec . "."; /**/ if (($rec = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $rec)) && ($rec = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $rec))) { if (($rec = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $rec)) && ($rec = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $rec))) { if (($rec = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $rec)) && ($rec = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $rec))) { if (($rec = preg_replace("/%%initial_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(c_ws_plugin__optimizemember_utils_time::period_term($paypal["initial_term"])), $rec)) && ($rec = preg_replace("/%%regular_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(c_ws_plugin__optimizemember_utils_time::period_term($paypal["regular_term"], $paypal["recurring"])), $rec))) { if (($rec = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $rec)) && ($rec = preg_replace("/%%recurring\\/regular_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"] ? $paypal["recurring"] . " / " . c_ws_plugin__optimizemember_utils_time::period_term($paypal["regular_term"], true) : "0 / non-recurring"), $rec))) { if (($rec = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $rec)) && ($rec = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $rec))) { if (($rec = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_dq(c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"])), $rec)) && ($rec = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_dq(c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"])), $rec))) { if ($rec = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_dq(c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $rec)) { /* **NOTE** c_ws_plugin__optimizemember_utils_strings::esc_dq() is applied here. ( ex. "N\"ame" <email> ). */ if ($rec = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $rec)) { if ($rec = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["ip"]), $rec)) { /**/ if (($sbj = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $sbj)) && ($sbj = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $sbj))) { if (($sbj = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $sbj)) && ($sbj = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $sbj))) { if (($sbj = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $sbj)) && ($sbj = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $sbj))) { if (($sbj = preg_replace("/%%initial_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(c_ws_plugin__optimizemember_utils_time::period_term($paypal["initial_term"])), $sbj)) && ($sbj = preg_replace("/%%regular_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(c_ws_plugin__optimizemember_utils_time::period_term($paypal["regular_term"], $paypal["recurring"])), $sbj))) { if (($sbj = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $sbj)) && ($sbj = preg_replace("/%%recurring\\/regular_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"] ? $paypal["recurring"] . " / " . c_ws_plugin__optimizemember_utils_time::period_term($paypal["regular_term"], true) : "0 / non-recurring"), $sbj))) { if (($sbj = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $sbj)) && ($sbj = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $sbj))) { if (($sbj = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $sbj)) && ($sbj = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $sbj))) { if ($sbj = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $sbj)) { if ($sbj = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $sbj)) { if ($sbj = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["ip"]), $sbj)) { /**/ if (($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) && ($msg = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $msg))) { if (($msg = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $msg)) && ($msg = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $msg))) { if (($msg = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $msg)) && ($msg = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $msg))) { if (($msg = preg_replace("/%%initial_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(c_ws_plugin__optimizemember_utils_time::period_term($paypal["initial_term"])), $msg)) && ($msg = preg_replace("/%%regular_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(c_ws_plugin__optimizemember_utils_time::period_term($paypal["regular_term"], $paypal["recurring"])), $msg))) { if (($msg = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $msg)) && ($msg = preg_replace("/%%recurring\\/regular_cycle%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"] ? $paypal["recurring"] . " / " . c_ws_plugin__optimizemember_utils_time::period_term($paypal["regular_term"], true) : "0 / non-recurring"), $msg))) { if (($msg = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $msg)) && ($msg = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $msg))) { if (($msg = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $msg)) && ($msg = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $msg))) { if ($msg = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $msg)) { if ($msg = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $msg)) { if ($msg = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["ip"]), $msg)) { /**/ $paypal["optimizemember_log"][] = "DEBUG: Rec before final if: " . $rec . "."; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } if (($rec = trim(preg_replace("/%%(.+?)%%/i", "", $rec))) && ($sbj = trim(preg_replace("/%%(.+?)%%/i", "", $sbj))) && ($msg = trim(preg_replace("/%%(.+?)%%/i", "", $msg)))) { $paypal["optimizemember_log"][] = "DEBUG: Before foreach and sending emails: " . $rec . "."; foreach (c_ws_plugin__optimizemember_utils_strings::parse_emails($rec) as $recipient) { /* Go through a possible list of recipients. */ $paypal["optimizemember_log"][] = "DEBUG: SENDING email to: " . $recipient . "."; } c_ws_plugin__optimizemember_email_configs::email_config() . wp_mail($recipient, apply_filters("ws_plugin__optimizemember_signup_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__optimizemember_signup_email_msg", $msg, get_defined_vars()), "From: \"" . preg_replace('/"/', "'", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8") . c_ws_plugin__optimizemember_email_configs::email_config_release(); /**/ $paypal["optimizemember_log"][] = "Signup Confirmation Email sent to: " . $rec . "."; } /**/ if ($processing && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["signup_notification_urls"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { foreach (preg_split("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["signup_notification_urls"]) as $url) { /**/ if (($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) && ($url = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["subscr_id"])), $url))) { if (($url = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["initial"])), $url)) && ($url = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["regular"])), $url)) && ($url = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["recurring"])), $url))) { if (($url = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["initial_term"])), $url)) && ($url = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["regular_term"])), $url))) { if (($url = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_number"])), $url)) && ($url = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_name"])), $url))) { if (($url = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["first_name"])), $url)) && ($url = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["last_name"])), $url))) { if ($url = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $url)) { if ($url = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["payer_email"])), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["ip"])), $url)) { /**/ if ($url = trim(preg_replace("/%%(.+?)%%/i", "", $url))) { c_ws_plugin__optimizemember_utils_urls::remote($url); } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Signup Notification URLs have been processed."; } /**/ if ($processing && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["signup_notification_recipients"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { $msg = $sbj = "( optimizeMember / API Notification Email ) - Signup"; $msg .= "\n\n"; /* Spacing in the message body. */ /**/ $msg .= "subscr_id: %%subscr_id%%\n"; $msg .= "initial: %%initial%%\n"; $msg .= "regular: %%regular%%\n"; $msg .= "recurring: %%recurring%%\n"; $msg .= "initial_term: %%initial_term%%\n"; $msg .= "regular_term: %%regular_term%%\n"; $msg .= "item_number: %%item_number%%\n"; $msg .= "item_name: %%item_name%%\n"; $msg .= "first_name: %%first_name%%\n"; $msg .= "last_name: %%last_name%%\n"; $msg .= "full_name: %%full_name%%\n"; $msg .= "payer_email: %%payer_email%%\n"; $msg .= "user_ip: %%user_ip%%\n"; /**/ $msg .= "cv0: %%cv0%%\n"; $msg .= "cv1: %%cv1%%\n"; $msg .= "cv2: %%cv2%%\n"; $msg .= "cv3: %%cv3%%\n"; $msg .= "cv4: %%cv4%%\n"; $msg .= "cv5: %%cv5%%\n"; $msg .= "cv6: %%cv6%%\n"; $msg .= "cv7: %%cv7%%\n"; $msg .= "cv8: %%cv8%%\n"; $msg .= "cv9: %%cv9%%"; /**/ if (($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) && ($msg = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $msg))) { if (($msg = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $msg)) && ($msg = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $msg)) && ($msg = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $msg))) { if (($msg = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $msg)) && ($msg = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $msg))) { if (($msg = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $msg)) && ($msg = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $msg))) { if (($msg = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $msg)) && ($msg = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $msg))) { if ($msg = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $msg)) { if ($msg = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $msg)) { if ($msg = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["ip"]), $msg)) { /**/ if ($sbj && ($msg = trim(preg_replace("/%%(.+?)%%/i", "", $msg)))) { /* Still have a ``$sbj`` and a ``$msg``? */ /**/ foreach (c_ws_plugin__optimizemember_utils_strings::parse_emails($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["signup_notification_recipients"]) as $recipient) { wp_mail($recipient, apply_filters("ws_plugin__optimizemember_signup_notification_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__optimizemember_signup_notification_email_msg", $msg, get_defined_vars()), "Content-Type: text/plain; charset=utf-8"); } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Signup Notification Emails have been processed."; } /**/ if ($processing && ($code = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["signup_tracking_codes"]) && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { if (($code = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $code)) && ($code = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $code))) { if (($code = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial"]), $code)) && ($code = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular"]), $code)) && ($code = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["recurring"]), $code))) { if (($code = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["initial_term"]), $code)) && ($code = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["regular_term"]), $code))) { if (($code = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $code)) && ($code = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $code))) { if (($code = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $code)) && ($code = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $code))) { if ($code = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $code)) { if ($code = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $code)) { if ($code = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["ip"]), $code)) { /**/ if ($code = trim(preg_replace("/%%(.+?)%%/i", "", $code))) { $paypal["optimizemember_log"][] = "Storing Signup Tracking Codes into a Transient Queue. These will be processed on-site."; set_transient("s2m_" . md5("optimizemember_transient_signup_tracking_codes_" . $paypal["subscr_id"]), $code, 43200); } } } } } } } } } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_during_subscr_signup_wo_update_vars", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } else { $paypal["optimizemember_log"][] = "Unable to generate Registration URL for Membership Access. Possible data corruption within the IPN response."; } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_after_subscr_signup_wo_update_vars", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } /**/ if ($processing && $_GET["optimizemember_paypal_proxy"] && ($url = $_GET["optimizemember_paypal_proxy_return_url"]) && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { if ($user_id && is_object($user) && $user->ID || ($user_id = c_ws_plugin__optimizemember_utils_users::get_user_id_with($paypal["subscr_id"], $paypal["option_selection1"])) && is_object($user = new WP_User($user_id)) && $user->ID) { $fields = get_user_option("optimizemember_custom_fields", $user_id); /* These will be needed in the routines below. */ $user_reg_ip = get_user_option("optimizemember_registration_ip", $user_id); /* Original IP during Registration. */ /**/ if (($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) && ($url = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["subscr_id"])), $url))) { if (($url = preg_replace("/%%initial%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["initial"])), $url)) && ($url = preg_replace("/%%regular%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["regular"])), $url)) && ($url = preg_replace("/%%recurring%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["recurring"])), $url))) { if (($url = preg_replace("/%%initial_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["initial_term"])), $url)) && ($url = preg_replace("/%%regular_term%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["regular_term"])), $url))) { if (($url = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_number"])), $url)) && ($url = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_name"])), $url))) { if (($url = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["first_name"])), $url)) && ($url = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["last_name"])), $url))) { if ($url = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $url)) { if ($url = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["payer_email"])), $url)) { if ($url = preg_replace("/%%modification%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode((int) $modifying)), $url)) { if (($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->last_name)), $url))) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($user->first_name . " " . $user->last_name))), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->user_email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->user_login)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_id)), $url)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { /* Custom Registration/Profile Fields. */ if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(maybe_serialize($val))), $url))) { break; } } } /**/ if ($url = trim($url)) { /* Preserve remaining replacements. */ /* Because the parent routine may perform replacements too. */ $paypal["optimizemember_paypal_proxy_return_url"] = $url; } } } } } } } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Subscr. Return ( `modification=" . (int) $modifying . "` ), a Proxy Return URL is ready."; } /**/ if ($processing && (preg_match("/^web_accept\$/i", $paypal["txn_type"]) || $_GET["optimizemember_paypal_proxy"] && preg_match("/subscr-signup-as-subscr-payment/", $_GET["optimizemember_paypal_proxy_use"]) && $paypal["txn_id"] && $paypal["mc_gross"] > 0) && ($user_id && is_object($user) && $user->ID || ($user_id = c_ws_plugin__optimizemember_utils_users::get_user_id_with($paypal["subscr_id"], $paypal["option_selection1"])) && is_object($user = new WP_User($user_id)) && $user->ID)) { $paypal["optimizemember_log"][] = "User exists. Handling `payment` for Subscription via ( `" . (preg_match("/^web_accept\$/i", $paypal["txn_type"]) ? "web_accept" : "subscr-signup-as-subscr-payment") . "` )."; /**/ $pr_times = get_user_option("optimizemember_paid_registration_times", $user_id); $pr_times["level"] = !$pr_times["level"] ? time() : $pr_times["level"]; /* Preserves existing. */ $pr_times["level" . $paypal["level"]] = !$pr_times["level" . $paypal["level"]] ? time() : $pr_times["level" . $paypal["level"]]; update_user_option($user_id, "optimizemember_paid_registration_times", $pr_times); /* Update now. */ /**/ if (!get_user_option("optimizemember_first_payment_txn_id", $user_id)) { /* 1st payment? */ update_user_option($user_id, "optimizemember_first_payment_txn_id", $paypal["txn_id"]); } /**/ update_user_option($user_id, "optimizemember_last_payment_time", time()); /* Update the last payment time. */ /**/ $fields = get_user_option("optimizemember_custom_fields", $user_id); /* These will be needed in the routines below. */ $user_reg_ip = get_user_option("optimizemember_registration_ip", $user_id); /* Original IP during Registration. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["payment_notification_urls"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { foreach (preg_split("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["payment_notification_urls"]) as $url) { /**/ if (($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) && ($url = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["subscr_id"])), $url))) { if (($url = preg_replace("/%%amount%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["mc_gross"])), $url)) && ($url = preg_replace("/%%txn_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["txn_id"])), $url))) { if (($url = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_number"])), $url)) && ($url = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["item_name"])), $url))) { if (($url = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["first_name"])), $url)) && ($url = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["last_name"])), $url))) { if ($url = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $url)) { if ($url = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($paypal["payer_email"])), $url)) { if (($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->last_name)), $url))) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(trim($user->first_name . " " . $user->last_name))), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->user_email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user->user_login)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode($user_id)), $url)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { /* Custom Registration/Profile Fields. */ if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(urlencode(maybe_serialize($val))), $url))) { break; } } } /**/ if ($url = trim(preg_replace("/%%(.+?)%%/i", "", $url))) { c_ws_plugin__optimizemember_utils_urls::remote($url); } } } } } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Payment Notification URLs have been processed."; } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["payment_notification_recipients"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { $msg = $sbj = "( optimizeMember / API Notification Email ) - Payment"; $msg .= "\n\n"; /* Spacing in the message body. */ /**/ $msg .= "subscr_id: %%subscr_id%%\n"; $msg .= "amount: %%amount%%\n"; $msg .= "txn_id: %%txn_id%%\n"; $msg .= "item_number: %%item_number%%\n"; $msg .= "item_name: %%item_name%%\n"; $msg .= "first_name: %%first_name%%\n"; $msg .= "last_name: %%last_name%%\n"; $msg .= "full_name: %%full_name%%\n"; $msg .= "payer_email: %%payer_email%%\n"; /**/ $msg .= "user_first_name: %%user_first_name%%\n"; $msg .= "user_last_name: %%user_last_name%%\n"; $msg .= "user_full_name: %%user_full_name%%\n"; $msg .= "user_email: %%user_email%%\n"; $msg .= "user_login: %%user_login%%\n"; $msg .= "user_ip: %%user_ip%%\n"; $msg .= "user_id: %%user_id%%\n"; /**/ if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { $msg .= $var . ": %%" . $var . "%%\n"; } } /**/ $msg .= "cv0: %%cv0%%\n"; $msg .= "cv1: %%cv1%%\n"; $msg .= "cv2: %%cv2%%\n"; $msg .= "cv3: %%cv3%%\n"; $msg .= "cv4: %%cv4%%\n"; $msg .= "cv5: %%cv5%%\n"; $msg .= "cv6: %%cv6%%\n"; $msg .= "cv7: %%cv7%%\n"; $msg .= "cv8: %%cv8%%\n"; $msg .= "cv9: %%cv9%%"; /**/ if (($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) && ($msg = preg_replace("/%%subscr_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["subscr_id"]), $msg))) { if (($msg = preg_replace("/%%amount%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["mc_gross"]), $msg)) && ($msg = preg_replace("/%%txn_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["txn_id"]), $msg))) { if (($msg = preg_replace("/%%item_number%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_number"]), $msg)) && ($msg = preg_replace("/%%item_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["item_name"]), $msg))) { if (($msg = preg_replace("/%%first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["first_name"]), $msg)) && ($msg = preg_replace("/%%last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["last_name"]), $msg))) { if ($msg = preg_replace("/%%full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($paypal["first_name"] . " " . $paypal["last_name"])), $msg)) { if ($msg = preg_replace("/%%payer_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($paypal["payer_email"]), $msg)) { if (($msg = preg_replace("/%%user_first_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace("/%%user_last_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->last_name), $msg))) { if ($msg = preg_replace("/%%user_full_name%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(trim($user->first_name . " " . $user->last_name)), $msg)) { if ($msg = preg_replace("/%%user_email%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->user_email), $msg)) { if ($msg = preg_replace("/%%user_login%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user->user_login), $msg)) { if ($msg = preg_replace("/%%user_ip%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_reg_ip), $msg)) { if ($msg = preg_replace("/%%user_id%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs($user_id), $msg)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { /* Custom Registration/Profile Fields. */ if (!($msg = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__optimizemember_utils_strings::esc_refs(maybe_serialize($val)), $msg))) { break; } } } /**/ if ($sbj && ($msg = trim(preg_replace("/%%(.+?)%%/i", "", $msg)))) { /* Still have a ``$sbj`` and a ``$msg``? */ /**/ foreach (c_ws_plugin__optimizemember_utils_strings::parse_emails($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["payment_notification_recipients"]) as $recipient) { wp_mail($recipient, apply_filters("ws_plugin__optimizemember_payment_notification_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__optimizemember_payment_notification_email_msg", $msg, get_defined_vars()), "Content-Type: text/plain; charset=utf-8"); } } } } } } } } } } } } } } /**/ $paypal["optimizemember_log"][] = "Payment Notification Emails have been processed."; } } else { if ($processing && (preg_match("/^web_accept\$/i", $paypal["txn_type"]) || $_GET["optimizemember_paypal_proxy"] && preg_match("/subscr-signup-as-subscr-payment/", $_GET["optimizemember_paypal_proxy_use"]) && $paypal["txn_id"] && $paypal["mc_gross"] > 0)) { $paypal["optimizemember_log"][] = "Storing `payment` for Subscription via ( `" . (preg_match("/^web_accept\$/i", $paypal["txn_type"]) ? "web_accept" : "subscr-signup-as-subscr-payment") . "` )."; /**/ $ipn = array("txn_type" => "subscr_payment"); /* Create a simulated IPN response for txn_type=subscr_payment. */ /**/ foreach ($paypal as $var => $val) { if (in_array($var, array("subscr_gateway", "subscr_id", "txn_id", "custom", "invoice", "mc_gross", "mc_currency", "tax", "payer_email", "first_name", "last_name", "item_name", "item_number", "option_name1", "option_selection1", "option_name2", "option_selection2"))) { $ipn[$var] = $val; } } /**/ $paypal["optimizemember_log"][] = "Creating an IPN response for `subscr_payment`. This will go into a Transient Queue; and be processed during registration."; /**/ set_transient("s2m_" . md5("optimizemember_transient_ipn_subscr_payment_" . $paypal["subscr_id"]), $ipn, 43200); } } /**/ if ($processing && ($user_id && is_object($user) && $user->ID || ($user_id = c_ws_plugin__optimizemember_utils_users::get_user_id_with($paypal["subscr_id"], $paypal["option_selection1"])) && is_object($user = new WP_User($user_id)) && $user->ID)) { $paypal["optimizemember_log"][] = "Storing IPN signup vars now. These are associated with a User's account record; for future reference."; /**/ update_user_option($user_id, "optimizemember_ipn_signup_vars", $ipn_signup_vars); } else { if ($processing) { $paypal["optimizemember_log"][] = "Storing IPN signup vars into a Transient Queue. These will be processed on registration."; /**/ set_transient("s2m_" . md5("optimizemember_transient_ipn_signup_vars_" . $paypal["subscr_id"]), $ipn_signup_vars, 43200); } } } else { $paypal["optimizemember_log"][] = "Not processing. Duplicate IPN."; $paypal["optimizemember_log"][] = "optimizeMember `txn_type` identified as ( `web_accept|subscr_signup` )."; $paypal["optimizemember_log"][] = "Duplicate IPN. Already processed. This IPN will be ignored."; } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_paypal_notify_after_subscr_signup", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ return apply_filters("c_ws_plugin__optimizemember_paypal_notify_in_subscr_or_wa_w_level", $paypal, get_defined_vars()); } else { return apply_filters("c_ws_plugin__optimizemember_paypal_notify_in_subscr_or_wa_w_level", false, get_defined_vars()); } }