1

We've installed both Store and Mailchimp subscribe however seem to have run into a few issues:

  • If a user registers via the default register screen, the form works and they get subscribed to mailchimp if they select Yes to subscribe, yay!
  • If a user registers via our store checkout form their choice is saved in their expressionengine profile, however it won't add them to the mailchimp list, booo!

We've basically setup a custom field with the options yes and no, if they select yes it should subscribe them to the mailing list.

We've then mapped this custom field to a store custom field (order_custom2) and used the following code in the checkout form:

  <div class="control-group {if error:order_custom2}error{/if}">
    <label class="control-label" for="order_custom2">Newsletter</label>
    <div class="controls">
      <select name="order_custom2" id="order_custom2" >
        <option value="Yes">Subscribe</option>
        <option value="No">Don't Subscribe</option>
      </select>
      {error:order_custom2}
    </div>
  </div>

We're struggling to see why this isn't working and any ideas would be much appreciated!

1

We are using Mailchimp Subscribe on exp-resso.com, and in the basic case of subscribing new users to a mailing list it works fine.

The problem I assume is coming from your mapped member field, which isn't updated with the order value at the time Mailchimp Subscribe is looking for it.

Store creates orders in this order:

  1. Process payment
  2. If register_member was set, create a new user and assign to the order
  3. If user is assigned to order, update mapped member fields
  4. Save order

Now, without looking at the code I assume Mailchimp Subscribe is using a hook which gets called as part of (2). So at the time the user is created, none of their custom member fields are set (only username, email, password etc). This means that any extensions which depend on the standard member registration hooks won't be able to see the custom member fields.

There isn't really an easy workaround for this. The only suggestion I can make is to edit the extension so that it has explicit support for registering users created during the checkout. To do this, you would need to use the store_order_complete_end hook in Store, which is called after the order is saved (and all mapped member fields will be updated at that point).

| improve this answer | |
  • Feared that might be the case, thanks for confirmation Adrian – Nick Feb 4 '14 at 11:40
  • @Nick did you ever find a solution to this, an alternative or a workaround? – 3Easy Dec 7 '15 at 0:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.