Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display Mailchimp self hosted sign up form if an unsubscribed contact tries to resubscribe with "Update Existing Subscriber?" enabled #117

Open
1 task done
MaxwellGarceau opened this issue Jan 9, 2025 · 1 comment
Labels
type:enhancement New feature or request.
Milestone

Comments

@MaxwellGarceau
Copy link
Collaborator

Is your enhancement related to a problem? Please describe.

Started on #93

Background

If a contact unsubscribes and then wants to resubscribe they have to do it through the Mailchimp hosted sign up form. They can't be resubscribed through the API. This is intended Mailchimp behavior.

Currently, we display a generic "Please enter a valid email" error if an unsubscribed contact wants to resubscribe. We're getting this error from Mailchimp's validation through the API.

Response from Mailchimp
wordpress-1  | [Tue Dec 24 19:04:44.609083 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] args, referer: http://localhost:8888/?p=8
wordpress-1  | [Tue Dec 24 19:04:44.609175 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] Array
(
    [method] => PUT
    [timeout] => 10
    [redirection] => 5
    [httpversion] => 1.1
    [user-agent] => Mailchimp WordPress Plugin/http://localhost:8888
    [headers] => Array
        (
            [Authorization] => Bearer 9cf7be3c9d2e49209d623f72adeb7b00
        )
    [body] => {"email_address":"maxwellgarceau+subscribeconfirmation@gmail.com","email_type":"html","merge_fields":{},"interests":{},"status":"subscribed"}
), referer: http://localhost:8888/?p=8

wordpress-1  | [Tue Dec 24 19:04:44.609186 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] url, referer: http://localhost:8888/?p=8
wordpress-1  | [Tue Dec 24 19:04:44.609190 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] https://us19.api.mailchimp.com/3.0/lists/3dc5a6c6c8/members/d4ba8092058018001923a6911cb5a04e, referer: http://localhost:8888/?p=8

⠧ wordpress-1  | [Tue Dec 24 19:04:44.853261 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] request, referer: http://localhost:8888/?p=8
wordpress-1  | [Tue Dec 24 19:04:44.853379 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] Array
(
    [headers] => WpOrg\Requests\Utility\CaseInsensitiveDictionary Object
        (
            [data:protected] => Array
                (
                    [content-type] => application/problem+json; charset=utf-8
                    [content-length] => 206
                    [x-spanid] => 018ea980-1ddf-fd9d-f710-1d3da1abbe17
                    [x-amzn-trace-id] => Root=1-676b05cc-40a99229482333653d21eb5f
                    [content-encoding] => gzip
                    [x-content-type-options] => nosniff
                    [link] => <https://us19.api.mailchimp.com/schema/3.0/Definitions/ProblemDetailDocument.json>; rel="describedBy"
                    [server] => istio-envoy
                    [vary] => Accept-Encoding
                    [x-envoy-upstream-service-time] => 104
                    [x-envoy-decorator-operation] => http-interposer-desired-service.mailchimp-cloud-httpinterposer-use2-prd-m2.svc.cluster.local:8090/*
                    [strict-transport-security] => max-age=31536000
                    [intuit_tid] => 1-676b05cc-40a99229482333653d21eb5f
                    [x-request-id] => 1-676b05cc-40a99229482333653d21eb5f
                    [date] => Tue, 24 Dec 2024 19:04:44 GMT
                )
        )
    [body] => {"title":"Member In Compliance State","status":400,"detail":"maxwellgarceau+subscribeconfirmation@gmail.com is in a compliance state due to unsubscribe, bounce, or compliance review and cannot be subscribed.","instance":"43ec3596-e49c-7e87-5afb-4549081af428"}
    [response] => Array
        (
            [code] => 400
            [message] => Bad Request
        )
), referer: http://localhost:8888/?p=8

wordpress-1  | [Tue Dec 24 19:04:44.853438 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] body, referer: http://localhost:8888/?p=8
wordpress-1  | [Tue Dec 24 19:04:44.853499 2024] [php:notice] [pid 25:tid 25] [client 172.18.0.1:55426] Array
(
    [title] => Member In Compliance State
    [status] => 400
    [detail] => maxwellgarceau+subscribeconfirmation@gmail.com is in a compliance state due to unsubscribe, bounce, or compliance review and cannot be subscribed.
    [instance] => 43ec3596-e49c-7e87-5afb-4549081af428
), referer: http://localhost:8888/?p=8
subscriber-can-not-resubscribe-walkthrough.mov

Designs

If an unsubscribed contact tries to resubscribe with "Update Existing Subscriber?" enabled we can fetch the Mailchimp sign up form URL through the API for the list they want to subscribe to and then return the link to the FE where they can sign up on the Mailchimp self hosted form.

Mailchimp Sign Up Forms API documentation: /lists/{list_id}/signup-forms

I believe this would create a stronger integration between Mailchimp WP and the Mailchimp account. In addition, user's would understand more clearly what was happening.

Describe alternatives you've considered

Alternatively, we could update the error message so that a user understands why their form submission continues to fail.

Code of Conduct

  • I agree to follow this project's Code of Conduct
@jeffpaul
Copy link
Collaborator

jeffpaul commented Jan 9, 2025

@MaxwellGarceau I concur with your recommendation here, let's go ahead and make that change in the WP plugin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:enhancement New feature or request.
Projects
None yet
Development

No branches or pull requests

2 participants