Created
January 10, 2012 13:31
-
-
Save 1stevengrant/1589101 to your computer and use it in GitHub Desktop.
MailChimp integration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*/////////////////////////////////////////////////////////////////////// | |
Part of the code from the book | |
Building Findable Websites: Web Standards, SEO, and Beyond | |
by Aarron Walter ([email protected]) | |
http://buildingfindablewebsites.com | |
Distrbuted under Creative Commons license | |
http://creativecommons.org/licenses/by-sa/3.0/us/ | |
///////////////////////////////////////////////////////////////////////*/ | |
function storeAddress(){ | |
// Validation | |
if(!$_GET['email']){ return "No email address provided"; } | |
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i", $_GET['email'])) { | |
return "Email address is invalid"; | |
} | |
require_once('MCAPI.class.php'); | |
// grab an API Key from http://admin.mailchimp.com/account/api/ | |
$api = new MCAPI('dd1af3a9705e8c60f6ab86ce0918d7b7-us1'); | |
// grab your List's Unique Id by going to http://admin.mailchimp.com/lists/ | |
// Click the "settings" link for the list - the Unique Id is at the bottom of that page. | |
$list_id = "b590c7d525"; | |
if($api->listSubscribe($list_id, $_GET['email'], '') === true) { | |
// It worked! | |
return 'Woohoo! You\'re now keeping current with happenings at Greenview'; | |
} else { | |
// An error ocurred, return error message | |
return 'Error: ' . $api->errorMessage; | |
} | |
} | |
// If being called via ajax, autorun the function | |
if($_GET['ajax']){ echo storeAddress(); } | |
?> |
Previous comment deleted after confusing myself for 5 minutes...
You're right, Erik. functions.js
does add the ajax
parameter (I hadn't seen that file).
In that case, the submit
field needs to be given a name, so the test in [the form gist]:https://gist.github.com/1589144 will work. That should all work then, will a non-AJAX fallback (I think). The way this is organised could be a lot clearer though.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Stephen, it looks like he already has ajax being passed via jQuery in his functions.js file. Would the form field still be required for non ajax calls?