WordPress.org

Ready to get started?Download WordPress

Forums

Contact Form 7 Newsletter
[resolved] [Plugin: Contact Form 7 & Constant Contact] Subscribers are removed from list 1 after using list (12 posts)

  1. nothin7
    Member
    Posted 1 year ago #

    I have Form A that subscribes people to List A (and no others) in Constant Contact. I also have Form B that subscribes people to List B (only). If a user subscribes via Form A, then later subscribes via Form B, they are removed from List A. Is there any way to save a subscribers current lists before adding them to a new list?

    http://wordpress.org/extend/plugins/contact-form-7-newsletter/

  2. williambennettiv
    Member
    Posted 1 year ago #

    having a similar issue. We already use constant contact extensively, and have about 15 different lists. If a user who is already on one or more of our lists signs up via this sort of setup, they are added to the new list and removed from ALL other lists. Cant imagine this is planned.

  3. Zack Katz
    Member
    Plugin Author

    Posted 1 year ago #

    This is the expected functionality. I assume you'd like an option to modify this behavior! I'll look into adding that in the next update.

  4. williambennettiv
    Member
    Posted 1 year ago #

    Ahhh - got it.

    For *my* personal use scenario (and understanding everyone will use things differently), it would be helpful to modify that behavior. In this instance, we already have many users set up on various lists. We will be setting up and inviting users to opt-in to a NEW list in addition to the other lists they may already be on.

    I think this feature would be helpful (might just be something that can be commented out?) especially for those marketing certain products. People can be on list A, B, and C. When we let them choose to get information about product D, we want to also keep updating them on A, B, & C.

  5. williambennettiv
    Member
    Posted 1 year ago #

    edit/addition:

    Looked through the plugin...seems that it just puts the contact on the new list, and loads that as THE list for the contact. So it would not be as easy as commenting out a line that removes everything else. In this case it would need to get the current list, add to that list, and then replace the list with the newly appended list.

  6. jared_brandon
    Member
    Posted 1 year ago #

    This would be a really great function add. We have lots of lists and people are subscribed to an average of 3 simultaneously. I need to have functionality for updating their subscriptions, not replacing. How much would it cost to sponsor this functionality?

  7. darrennye
    Member
    Posted 1 year ago #

    Oh geez. My client has about 5 lists, and each person can perceivable be on all those lists.

    And the web forms I built to integrate with Constant Contact, focus on one of these lists. So if a user fills out a form, such as "volunteer" instead of "contact us" not only do they get removed from the other lists, their answers also get deleted from the constant contact database, which would more than likely still be accurate.

    All of their lists share the same contact and custom fields up at Constant Contact.

    To clarify the other issue - I have noticed that if I leave a field empty on one of my forms, such as "Street Address 1" - if data was already in that field at Constant Contact, and I submit my form with that field blank, it will then erase the field up at Constant Contact - when it should just leave it as it was.

    I hope there are future options not to change other lists, and not to change or delete fields in constant contact, that are not filled out (null/empty) on the new form being submitted. It should just leave the existing field there.

  8. eric_wijaya_87
    Member
    Posted 1 year ago #

    Having the same issue. Is there any fix yet?

  9. darrennye
    Member
    Posted 1 year ago #

    This is what a rep from Constant Contact said would need to be done:

    > From: Shannon Wallace <swallace@constantcontact.com>
    > Date: November 19, 2012, 3:47:53 PM EST
    > Subject: WordPress plugin to Constant Contact [ ref:_00D708xak._50070Q76e3:ref ]
    >
    > I understand the plugin you're using is overwriting contact information if fields are blank instead of updating the contact with new information and leaving the existing information alone.
    >
    > This isn't a setting inside Constant Contact--the developers of the integration should first be making a call to our API to get the contact's details, then adding to the record to add new information, then putting the contact's information back into Constant Contact in a second API call. It sounds like they are either not getting the contact information (the first step), or overwriting fields that contain content with no content when they do the update call to our API. It is something that needs to be changed on their end.
    >
    > If they can contact me and provide the code they use to do this, I can take a look and make recommendations on what they need to change to not overwrite what is there already. The best email address to use is webservices@constantcontact.com. Sorry you ran into this!
    >
    > Best Regards,
    > Shannon W.
    > API Support Specialist
    >
    >
    > ref:_00D708xak._50070Q76e3:ref

  10. eric_wijaya_87
    Member
    Posted 1 year ago #

    Hey I edit the plugins in this line

    // Define the lists to be added
    		$contact['lists'] = (array)$cf7_ctct['lists'];
    
    		$Contact = CTCT_SuperClass::CC_Contact($contact);
    
    		$contact_exists = CTCT_SuperClass::CC_ContactsCollection()->searchByEmail($contact['email_address']);
    
    		$contact_exists_details = CTCT_SuperClass::CC_ContactsCollection()->listContactDetails($contact_exists[0][0]);
    
    		if(!$contact_exists) {
    			$expected_response = 201;
    			$response = CTCT_SuperClass::CC_ContactsCollection()->createContact($Contact);
    		} else {
    			$expected_response = 204;
    			$details = $contact_exists[0][0];
    			$contact_id = CTCT_SuperClass::getContactId(&$contact_exists[0][0]);
    			$Contact->setId($contact_exists[0][0]->getId());
    			$Contact->setLink($contact_exists[0][0]->getLink());
    			$contact_lists = $contact_exists_details->getLists();
    			foreach($contact_lists as $contact_list) {
    				$Contact->setLists($contact_list);
    			}
    
    			$response = CTCT_SuperClass::CC_ContactsCollection()->updateContact($contact_id, $Contact);
    		}

    I add these lines

    $contact_exists_details = CTCT_SuperClass::CC_ContactsCollection()->listContactDetails($contact_exists[0][0]);
    $contact_lists = $contact_exists_details->getLists();
    			foreach($contact_lists as $contact_list) {
    				$Contact->setLists($contact_list);
    			}
  11. Zack Katz
    Member
    Plugin Author

    Posted 1 year ago #

    This is fixed in Version 1.1, thanks for reporting.

  12. jared_brandon
    Member
    Posted 1 year ago #

    Booya! Thanks, updating now.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic