Added login request
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* The public-facing functionality of the plugin.
|
||||
*
|
||||
* @link https://mailchimp.com
|
||||
* @since 1.0.1
|
||||
*
|
||||
* @package MailChimp_WooCommerce
|
||||
* @subpackage MailChimp_WooCommerce/public
|
||||
*/
|
||||
|
||||
/**
|
||||
* The public-facing functionality of the plugin.
|
||||
*
|
||||
* Defines the plugin name, version, and two examples hooks for how to
|
||||
* enqueue the admin-specific stylesheet and JavaScript.
|
||||
*
|
||||
* @package MailChimp_WooCommerce
|
||||
* @subpackage MailChimp_WooCommerce/public
|
||||
* @author Ryan Hungate <ryan@vextras.com>
|
||||
*/
|
||||
class MailChimp_WooCommerce_Public {
|
||||
|
||||
/**
|
||||
* The ID of this plugin.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access private
|
||||
* @var string $plugin_name The ID of this plugin.
|
||||
*/
|
||||
private $plugin_name;
|
||||
|
||||
/**
|
||||
* The version of this plugin.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access private
|
||||
* @var string $version The current version of this plugin.
|
||||
*/
|
||||
private $version;
|
||||
|
||||
/**
|
||||
* Initialize the class and set its properties.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @param string $plugin_name The name of the plugin.
|
||||
* @param string $version The version of this plugin.
|
||||
*/
|
||||
public function __construct( $plugin_name, $version ) {
|
||||
|
||||
$this->plugin_name = $plugin_name;
|
||||
$this->version = $version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the stylesheets for the public-facing side of the site.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function enqueue_styles() {
|
||||
//wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/mailchimp-woocommerce-public.css', array(), $this->version, 'all' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the JavaScript for the public-facing side of the site.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function enqueue_scripts() {
|
||||
wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version, false);
|
||||
wp_localize_script($this->plugin_name, 'mailchimp_public_data', array(
|
||||
'site_url' => site_url(),
|
||||
'ajax_url' => admin_url('admin-ajax.php'),
|
||||
));
|
||||
// Enqueued script with localized data.
|
||||
wp_enqueue_script($this->plugin_name);
|
||||
//if we have the connected_site script url saved, we need to inject it
|
||||
if (($site = mailchimp_get_connected_site_script_url()) && !empty($site)) {
|
||||
wp_enqueue_script($this->plugin_name.'_connected_site', $site, array(), $this->version, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* All of the CSS for your public-facing functionality should be
|
||||
* included in this file.
|
||||
*/
|
||||
@@ -0,0 +1 @@
|
||||
<?php // Silence is golden
|
||||
@@ -0,0 +1,205 @@
|
||||
var mailchimp,
|
||||
mailchimp_cart,
|
||||
mailchimp_billing_email,
|
||||
mailchimp_username_email,
|
||||
mailchimp_registration_email,
|
||||
mailchimp_submitted_email = false,
|
||||
mailchimpReady = function (a) { /in/.test(document.readyState) ? setTimeout("mailchimpReady(" + a + ")", 9) : a(); };
|
||||
|
||||
function mailchimpGetCurrentUserByHash(a) {
|
||||
try {
|
||||
var b = mailchimp_public_data.ajax_url + "?action=mailchimp_get_user_by_hash&hash=" + a, c = new XMLHttpRequest;
|
||||
c.open("POST", b, !0), c.onload = function () {
|
||||
if (c.status >= 200 && c.status < 400) {
|
||||
var a = JSON.parse(c.responseText);
|
||||
if (!a) return;
|
||||
mailchimp_cart.valueEmail(a.email) && mailchimp_cart.setEmail(a.email);
|
||||
}
|
||||
};
|
||||
c.onerror = function () {
|
||||
console.log("mailchimp.get_email_by_hash.request.error", c.responseText)
|
||||
};
|
||||
c.setRequestHeader("Content-Type", "application/json");
|
||||
c.setRequestHeader("Accept", "application/json");
|
||||
c.send();
|
||||
} catch (a) {
|
||||
console.log("mailchimp.get_email_by_hash.error", a)
|
||||
}
|
||||
}
|
||||
function mailchimpHandleBillingEmail(selector) {
|
||||
try {
|
||||
if (!selector) selector = "#billing_email";
|
||||
var a = document.querySelector(selector);
|
||||
var b = void 0 !== a ? a.value : "";
|
||||
if (!mailchimp_cart.valueEmail(b) || mailchimp_submitted_email === b) { return false; }
|
||||
mailchimp_cart.setEmail(b);
|
||||
var c = mailchimp_public_data.ajax_url + "?action=mailchimp_set_user_by_email&email=" + b;
|
||||
var d = new XMLHttpRequest;
|
||||
d.open("POST", c, !0);
|
||||
d.onload = function () {
|
||||
var successful = d.status >= 200 && d.status < 400;
|
||||
var msg = successful ? "mailchimp.handle_billing_email.request.success" : "mailchimp.handle_billing_email.request.error";
|
||||
if (successful) {
|
||||
mailchimp_submitted_email = b;
|
||||
}
|
||||
console.log(msg, d.responseText);
|
||||
};
|
||||
d.onerror = function () {
|
||||
console.log("mailchimp.handle_billing_email.request.error", d.responseText)
|
||||
};
|
||||
d.setRequestHeader("Content-Type", "application/json");
|
||||
d.setRequestHeader("Accept", "application/json");
|
||||
d.send();
|
||||
return true;
|
||||
} catch (a) {
|
||||
console.log("mailchimp.handle_billing_email.error", a); mailchimp_submitted_email = !1
|
||||
}
|
||||
}
|
||||
|
||||
!function () {
|
||||
"use strict";
|
||||
|
||||
function mailchimpCart() {
|
||||
|
||||
this.email_types = "input[type=email]";
|
||||
this.regex_email = /^([A-Za-z0-9_+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
|
||||
this.current_email = null;
|
||||
this.previous_email = null;
|
||||
this.expireUser = function () {
|
||||
this.current_email = null;
|
||||
mailchimp.storage.expire("mailchimp.cart.current_email");
|
||||
};
|
||||
this.expireSaved = function () {
|
||||
mailchimp.storage.expire("mailchimp.cart.items");
|
||||
};
|
||||
this.setEmail = function (a) {
|
||||
if (!this.valueEmail(a)) return false;
|
||||
this.setPreviousEmail(this.getEmail());
|
||||
mailchimp.storage.set("mailchimp.cart.current_email", this.current_email = a);
|
||||
};
|
||||
this.getEmail = function () {
|
||||
if (this.current_email) return this.current_email;
|
||||
var a = mailchimp.storage.get("mailchimp.cart.current_email", !1);
|
||||
if (!a || !this.valueEmail(a)) return false;
|
||||
return this.current_email = a;
|
||||
};
|
||||
this.setPreviousEmail = function (a) {
|
||||
if (!this.valueEmail(a)) return false;
|
||||
mailchimp.storage.set("mailchimp.cart.previous_email", this.previous_email = a);
|
||||
};
|
||||
this.valueEmail = function (a) {
|
||||
return this.regex_email.test(a);
|
||||
};
|
||||
return this;
|
||||
}
|
||||
|
||||
var g = {
|
||||
extend: function (a, b) {
|
||||
for (var c in b || {})b.hasOwnProperty(c) && (a[c] = b[c]);
|
||||
return a
|
||||
}, getQueryStringVars: function () {
|
||||
var a = window.location.search || "", b = [], c = {};
|
||||
if (a = a.substr(1), a.length) {
|
||||
b = a.split("&");
|
||||
for (var d in b) {
|
||||
var e = b[d];
|
||||
if ("string" == typeof e) {
|
||||
var f = e.split("="), g = f[0], h = f[1];
|
||||
g.length && ("undefined" == typeof c[g] && (c[g] = []), c[g].push(h))
|
||||
}
|
||||
}
|
||||
}
|
||||
return c
|
||||
}, unEscape: function (a) {
|
||||
return decodeURIComponent(a)
|
||||
}, escape: function (a) {
|
||||
return encodeURIComponent(a)
|
||||
}, createDate: function (a, b) {
|
||||
a || (a = 0);
|
||||
var c = new Date, d = b ? c.getDate() - a : c.getDate() + a;
|
||||
return c.setDate(d), c
|
||||
}, arrayUnique: function (a) {
|
||||
for (var b = a.concat(), c = 0; c < b.length; ++c)for (var d = c + 1; d < b.length; ++d)b[c] === b[d] && b.splice(d, 1);
|
||||
return b
|
||||
}, objectCombineUnique: function (a) {
|
||||
for (var b = a[0], c = 1; c < a.length; c++) {
|
||||
var d = a[c];
|
||||
for (var e in d)b[e] = d[e]
|
||||
}
|
||||
return b
|
||||
}
|
||||
}, h = function (a, b) {
|
||||
var c = function (a, b, d) {
|
||||
return 1 === arguments.length ? c.get(a) : c.set(a, b, d)
|
||||
};
|
||||
return c.get = function (b, d) {
|
||||
return a.cookie !== c._cacheString && c._populateCache(), void 0 == c._cache[b] ? d : c._cache[b]
|
||||
}, c.defaults = {path: "/"}, c.set = function (d, e, f) {
|
||||
switch (f = {
|
||||
path: f && f.path || c.defaults.path,
|
||||
domain: f && f.domain || c.defaults.domain,
|
||||
expires: f && f.expires || c.defaults.expires,
|
||||
secure: f && f.secure !== b ? f.secure : c.defaults.secure
|
||||
}, e === b && (f.expires = -1), typeof f.expires) {
|
||||
case"number":
|
||||
f.expires = new Date((new Date).getTime() + 1e3 * f.expires);
|
||||
break;
|
||||
case"string":
|
||||
f.expires = new Date(f.expires)
|
||||
}
|
||||
return d = encodeURIComponent(d) + "=" + (e + "").replace(/[^!#-+\--:<-\[\]-~]/g, encodeURIComponent), d += f.path ? ";path=" + f.path : "", d += f.domain ? ";domain=" + f.domain : "", d += f.expires ? ";expires=" + f.expires.toGMTString() : "", d += f.secure ? ";secure" : "", a.cookie = d, c
|
||||
}, c.expire = function (a, d) {
|
||||
return c.set(a, b, d)
|
||||
}, c._populateCache = function () {
|
||||
c._cache = {};
|
||||
try {
|
||||
c._cacheString = a.cookie;
|
||||
for (var d = c._cacheString.split("; "), e = 0; e < d.length; e++) {
|
||||
var f = d[e].indexOf("="), g = decodeURIComponent(d[e].substr(0, f)), f = decodeURIComponent(d[e].substr(f + 1));
|
||||
c._cache[g] === b && (c._cache[g] = f)
|
||||
}
|
||||
} catch (a) {
|
||||
console.log(a)
|
||||
}
|
||||
}, c.enabled = function () {
|
||||
var a = "1" === c.set("cookies.js", "1").get("cookies.js");
|
||||
return c.expire("cookies.js"), a;
|
||||
}(), c
|
||||
}(document);
|
||||
|
||||
mailchimp = {storage: h, utils: g};
|
||||
mailchimp_cart = new mailchimpCart;
|
||||
}();
|
||||
|
||||
mailchimpReady(function () {
|
||||
|
||||
if (void 0 === a) {
|
||||
var a = { site_url: document.location.origin, defaulted: !0, ajax_url: document.location.origin + "/wp-admin?admin-ajax.php" };
|
||||
}
|
||||
|
||||
try {
|
||||
var b = mailchimp.utils.getQueryStringVars();
|
||||
void 0 !== b.mc_cart_id && mailchimpGetCurrentUserByHash(b.mc_cart_id);
|
||||
|
||||
mailchimp_username_email = document.querySelector("#username");
|
||||
mailchimp_billing_email = document.querySelector("#billing_email");
|
||||
mailchimp_registration_email = document.querySelector("#reg_email");
|
||||
|
||||
if (mailchimp_billing_email) {
|
||||
mailchimp_billing_email.onblur = function () { mailchimpHandleBillingEmail('#billing_email'); };
|
||||
mailchimp_billing_email.onfocus = function () { mailchimpHandleBillingEmail('#billing_email'); }
|
||||
}
|
||||
|
||||
if (mailchimp_username_email) {
|
||||
mailchimp_username_email.onblur = function () { mailchimpHandleBillingEmail('#username'); };
|
||||
mailchimp_username_email.onfocus = function () { mailchimpHandleBillingEmail('#username'); }
|
||||
}
|
||||
|
||||
if (mailchimp_registration_email) {
|
||||
mailchimp_registration_email.onblur = function () { mailchimpHandleBillingEmail('#reg_email'); };
|
||||
mailchimp_registration_email.onfocus = function () { mailchimpHandleBillingEmail('#reg_email'); }
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('mailchimp ready error', e);
|
||||
}
|
||||
});
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Provide a public-facing view for the plugin
|
||||
*
|
||||
* This file is used to markup the public-facing aspects of the plugin.
|
||||
*
|
||||
* @link https://mailchimp.com
|
||||
* @since 1.0.1
|
||||
*
|
||||
* @package MailChimp_WooCommerce
|
||||
* @subpackage MailChimp_WooCommerce/public/partials
|
||||
*/
|
||||
?>
|
||||
|
||||
<!-- This file should primarily consist of HTML with a little bit of PHP. -->
|
||||
Reference in New Issue
Block a user