Fatal error: Uncaught CurlException: Error making request with curl_error: Operation timed out after 45000 milliseconds with 0 bytes received in /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/transport.php:175?
Stack trace:
#0 /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/base_classes.php(306): CS_REST_CurlTransport->make_call(Array)?
#1 /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/base_classes.php(236): CS_REST_Wrapper_Base->_call(Array, 'POST', 'https://api.cre...', Array)?
#2 /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/csrest_subscribers.php(174): CS_REST_Wrapper_Base->post_request('https://api.cre...', Array)?
#3 /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/CampaignMonitor.php(289): CS_REST_Subscribers->import(Array, false, true, false)?
#4 /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/App.php(222): core\CampaignMonitor->import_subscribers('5fdba473c1857db...', Array)?
#5 /home/EXAMPLEUSER/public_html/wp-includes/class-wp-hook.php(310): core\App::profile_update(1951)
#6 /home/EXAMPLEUSER/public_html/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array)?
#7 /home/EXAMPLEUSER/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array)?
#8 /home/EXAMPLEUSER/public_html/wp-includes/user.php(2461): do_action('profile_update', 1951, Object(WP_User), Array)?
#9 /home/EXAMPLEUSER/public_html/wp-includes/user.php(2582): wp_insert_user(Array)?
#10 /home/EXAMPLEUSER/public_html/wp-content/plugins/required-plugin-PDD-WOO.php(79): wp_update_user(Array)?
#11 /home/EXAMPLEUSER/public_html/wp-includes/class-wp-hook.php(308): save_extra_user_profile_fields(1951)?
#12 /home/EXAMPLEUSER/public_html/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array)?
#13 /home/EXAMPLEUSER/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array)?
#14 /home/EXAMPLEUSER/public_html/wp-admin/user-edit.php(157): do_action('edit_user_profi...', 1951)?
#15 {main} thrown in /home/EXAMPLEUSER/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/transport.php on line 175
I get this with version Version 1.4.9
]]>The General Data Protection Regulation (GDPR) is a regulation on data protection and privacy for all individuals within the European Union. It came into force across the European Union on 25 May 2018.
This plugin adds customer data to CampaignMonitor without asking consent in the Checkout. This is in violation of the GDPR as you cannot collect customer data like that, regardless of whether you intend to use it or not.
Be warned that if you subsequently send a campaign to customers who did not give consent, they can file a complaint with their local Data Protection Authority and you will be hit with heavy fines.
The CampaignMonitor developers have known about this for years and have done nothing to resolve it.
]]>Hi, one year ago there is this ticket: https://www.ads-software.com/support/topic/automatically-subscbrive-user/
They mention that a WooCommerce sale is synched to Campaign Monitor, if the checkbox is checked or not.
One year later; today; i stumble on the same privacy issue.
Are you aware that when store owners use that data inside Campaign Monitor?
They can be fined by the thousands. This is serious, most store owners aren’t probably aware, but you do. Like one year, or on purpose to sell more plans because of the subscriber growth.
Please fix this giant issue, or otherwise we have to report it to the privacy commisions; so Campaign Monitor will be fined. And on this scale, that would go up the hundred thousands or euro’s.
]]>I’m using a WordPress multisite with Woocommerce as a network activated plugin. When Woocommerce is network activated, you cannot activate Campaign Monitor for Woocommerce plugin at either a site or network level. Error received is Woocommerce needs to be active.
I believe that all that is required to fix this would be changing line 61 of file core/App.php where the check is done if Woocommerce is active to account for network activated plugins.
Please could an update be released for this?
]]>There’s been a post on this before a while ago, but I have just been informed that I am adding users to my email list even though they have not clicked on the tick box to sign up for future newsletters.
Whilst the current system does not add them to the ‘active’ segment, it should be setup in a way that if the box is remained unticked that it DOES NOT pass any information across to Campaign Monitor as end users are getting the notification to confirm their subscription.
]]>I’d like to customize the HTML being added to checkout around the checkbox. I noticed a note “Change Proceed To Checkout Text in WooCommerce, Place this in your Functions.php file” in the core/App.php file but it doesn’t seem to work. How can I do this?
# functions.php
function woocommerce_subscription_box_before() {
echo 'TESTING CUSTOM HTML';
}
Code reference:
https://github.com/campaignmonitor/woo-commerce-plugin/blob/master/core/App.php#L230
Hi there,
We have installed Campaign Monitor for WooCommerce plugin on our website. When I click “Subscribe at checkout” on left sidebar, it shows following error.
We are using updated Wordprss version.
Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wp-content/plugins/campaign-monitor-for-woocommerce/views/admin/connect.php:110 Stack trace: #0 /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wp-content/plugins/campaign-monitor-for-woocommerce/core/Helper.php(133): require_once() #1 /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wp-content/plugins/campaign-monitor-for-woocommerce/core/App.php(582): core\Helper::renderer() #2 /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wordpress/wp-includes/class-wp-hook.php(307): core\App::register_settings_page() #3 /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wordpress/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters() #4 /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wordpress/wp-includes/plugin.php(474): WP_Hook->do_action() #5 /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1 in /home/234134.cloudwaysapps.com/xdpvjjnftg/public_html/releases/1/wp-content/plugins/campaign-monitor-for-woocommerce/views/admin/connect.php on line 110
Hi there,
We have a client who is using this plugin and it appears that whether you have selected (Automatically subscribe customers to your newsletter) or not you get added to the list regardless. We need this to work that when you don’t tick that checkbox they DO NOT get added to the email list in Campaign Monitor. Have we missed a setting or does this not work?
Kind regards,
Cory
When going through the connection process, after entering the client ID and client secret I am prompted for my Campaign Monitor credentials again. Then, upon returning to the WordPress admin, the page shows an uncaught error:
Uncaught Error: Cannot use object of type stdClass as array in /path/to/wp-content/mu-plugins/campaign-monitor-for-woocommerce/views/admin/connect.php on line 110
require_once()
wp-content/mu-plugins/campaign-monitor-for-woocommerce/core/Helper.php:133
renderer()
wp-content/mu-plugins/campaign-monitor-for-woocommerce/core/App.php:582
register_settings_page()
wp-includes/class-wp-hook.php:287
apply_filters()
wp-includes/class-wp-hook.php:311
do_action()
wp-includes/plugin.php:478
do_action()
wp-admin/admin.php:254
I am using the latest version of the plugin.
Adding some debugging code to the location flagged in the error, I found that the object being returned is:
stdClass Object ( [Code] => 50 [Message] => Must supply a valid HTTP Basic Authorization header )
What can cause there not to be a valid authorisation header, and how can I fix it?
]]>The plugin automatically creates 5 segments within Campaign Monitor but how do I create my own custom segments?
What I am trying to achieve is segments populated depending on which product is purchased e.g. if a customer purchases product ‘A’ they’re automatically added to a segment in Campaign monitor called ‘Product A Customers’.
Please advise how I can achieve this?
]]>Is there any way to only add customers who checked the subscribe box at checkout?
Currently if a customer buys something and doesn’t check the subscribe box, they are still added to CampMon.
The problem is with the GDPR laws in Europe, we cannot add people to CampMon unless they opt-in.
I know I can use the segment to filter these people, but the risk is if my client accidently emails all these people without filtering by segment.
Is there some sort of function that could resolve this?
Thanks.
]]>I connected the wrong CM account. how do i disconnect and re-connect with the correct one?
]]>Hi there,
After the update, we are randomly having timeout errors when Campaign Monitor sends requests to api.createsend.com, which prevents the transactions on checkout. During WP user profile update the action is triggered and the Campain Monitor plugin is hooked to it makeing a CURL call.
Can you please check and fix the issue?
Please let me know if you need any additional information.
Many thanks!
BM
Hi there
We were also experiencing the timeout issue. Updated the plugin to 1.4.5 but have just had another fatal error report.
Only common feature seems to be the site users were using the Safari browser.
Cheers
Craig
=============
WordPress version 5.4.2
Current plugin: Campaign Monitor for WooCommerce (version 1.4.5)
PHP version 7.3.22-1+0~20200909.67+debian9~1.gbpdd7b72
Error Details
=============
An error of type E_ERROR was caused in line 175 of the file /public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/transport.php. Error message: Uncaught CurlException: Error making request with curl_error: Operation timed out after 20000 milliseconds with 0 bytes received in /public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/transport.php:175
Stack trace:
#0 /public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/base_classes.php(306): CS_REST_CurlTransport->make_call(Array)
#1 /public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/base_classes.php(236): CS_REST_Wrapper_Base->_call(Array, ‘POST’, ‘https://api.cre…’, Array)
#2 public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/csrest_subscribers.php(174): CS_REST_Wrapper_Base->post_request(‘https://api.cre…’, Array)
#3 /plugins/campaign-monitor-for-woocommerce/core/CampaignMonitor.php(289): CS_REST_Subsc
Hi,
I’m a developer who manages two WooCommerce stores for a client. Both stores use Braintree for WooCommerce as the payment gateway, and we have been experiencing an issue where the fraud tools for one of the two stores were not working correctly. Braintree informed us that this site was “not capturing the device data”.
In investigating the issue, it turns out that the only configuration difference between the sites was that the site that was not working correctly was running this plugin. In investigating the issue, I have found that the cause is line 265
of core\App.php
:
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
The problem is that Braintree captures the device data in a hidden checkout field like this:
<input type="hidden" name="device_data" id="device_data" value="{"device_session_id":"9a20b3f135bb44e1070c2b77feef92a0","fraud_merchant_id":"600000","correlation_id":"995fe71f0d9876c4effb58546bdade9e"}">
As part of the payment gateway processing, the Braintree for WooCommerce plugin decodes this JSON with json_decode()
. The problem is that the above line from this plugin modifies the value of the device_data
field such that it cannot be properly decoded.
The issue here, as I see it, is that this plugin has no business sanitising the entire $_POST
array from checkout. That is not the concern of this plugin, and it is causing checkout data to differ from what other plugins would expect it to be based on the default behaviour of WooCommerce. Ideally the offending line should be removed and this plugin should only apply the sanitisation it needs to its own fields, and even then not to $_POST
directly.
To work around this issue I have commented out that line and will need to avoid installing any future updates to this plugin until this is resolved, or remove the plugin entirely. I hope that this can be fixed quickly.
]]>Your Site is Experiencing a Technical Issue
WordPress version 5.5
Current theme: Theme
Current plugin: Campaign Monitor for WooCommerce (version 1.4.4)
PHP version 7.4.9
Error Details
=============
An error of type E_ERROR was caused in line 175 of the file /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/transport.php. Error message: Uncaught CurlException: Error making request with curl_error: Operation timed out after 10001 milliseconds with 0 bytes received in /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/transport.php:175
Stack trace:
#0 /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/base_classes.php(306): CS_REST_CurlTransport->make_call(Array)
#1 /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/base_classes.php(236): CS_REST_Wrapper_Base->_call(Array, ‘POST’, ‘https://api.cre…’, Array)
#2 /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/class/csrest_subscribers.php(174): CS_REST_Wrapper_Base->post_request(‘https://api.cre…’, Array)
#3 /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/CampaignMonitor.php(289): CS_REST_Subscribers->import(Array, false, true, false)
#4 /home/mywebsite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/App.php(222)
I asked this before on this forum but it was not answered or replied to and I again find myself with the same question….
What data does this grab from the customer at woocommerce checkout?
For example, e.g. just name and email, or can it be configured to collect additional data (e.g. country, for segmenting, address, phone number etc)
Please provide better description and more info!
—
In particular – I want to be able to collect the country field from woocommerce so that I can segment.
Thanks
]]>Plugin version: 1.4.2
Reproduce: Open the Settings screen for this Plugin;
URL: /wp-admin/admin.php?page=campaign_monitor_woocommerce
Error code: Fatal PHP error
Affected file: views\admin\connect.php
Line: 497
Reason: Incorrect use of “get_admin()”, a function that does not exist, should be “get_admin_url()”
Please include this change in the next Plugin release. ??
—
Line 497
Message Uncaught Error: Call to undefined function get_admin() in /wp-content/plugins/campaign-monitor-for-woocommerce/views/admin/connect.php:497 Stack trace: #0 /wp-content/plugins/campaign-monitor-for-woocommerce/core/Helper.php(133): require_once() #1 /wp-content/plugins/campaign-monitor-for-woocommerce/core/App.php(583): core\Helper::renderer(‘connect’) #2 /wp-includes/class-wp-hook.php(287): core\App::register_settings_page(”) #3 /wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters(”, Array) #4 /wp-includes/plugin.php(478): WP_Hook->do_action(Array) #5/wp-admin/admin.php(254): do_action(‘toplevel_page_c…’) #6 {main} thrown
File /wp-content/plugins/campaign-monitor-for-woocommerce/views/admin/connect.php
A ‘Resubscribe Users?’ checkbox setting would be great to allow the resubscription of users.
I saw there was a previous post about this that was closed two years ago with no replies (https://www.ads-software.com/support/topic/if-a-user-has-previously-unsubscribed-they-are-not-resubscribed/)
]]>Hi There,
I see this is mentioned several times in the support forum with no solution?
You can’t have the signup below the place order button?, that’s just silly!
Please advise how to move above the place order button urgently, thanks
]]>I have been using this plugin for a year and the same thing happens at least once a month, Woocommerce or WordPress updates and this plugin stops working & needs removed then reinstalled.
After setting the plugin up you cannot access the campaign monitor settings inside wordpress or it will break the plugin again and no one will be added to your lists after ordering.
An error of type E_ERROR was caused in line 82 of the file /home/mysite/public_html/wp-content/plugins/query-monitor/collectors/php_errors.php. Error message: Uncaught Error: Cannot use object of type stdClass as array in /home/mysite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/views/admin/connect.php:118
Stack trace:
#0 /home/mysite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/Helper.php(133): require_once()
#1 /home/mysite/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/App.php(568): core\Helper::renderer('connect')
#2 /home/mysite/public_html/wp-includes/class-wp-hook.php(288): core\App::register_settings_page('')
#3 /home/mysite/public_html/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters('', Array)
#4 /home/mysite/public_html/wp-includes/plugin.php(478): WP_Hook->do_action(Array)
#5 /home/mysite/public_html/wp-admin/admin.php(254): do_action('toplevel_page_c...')
#6 {main}
Next Exception: Cannot use object of type stdClass as array in /home/mysite/public_html/wp-content/plugins/query-monitor/collectors/php_errors.php:82
Stack trace:
#0 [internal function]: QM_Collector_
Really fed up considering the amount of money I pay for my campaign monitor each month and this simple plugin always fails.
]]>This was asked before but could not find answer.
How to change this above the checkout button after the terms and conditions?
]]>Hi
I have just upgraded to the latest version of the plugin hoping it would fix some connection issues with PHP7 that were mentioned in the changelog.
It mentioned this would not work via admin upgrade and it needed to be disconnected and the new version installed manually.
I remove the plugin and options from the database and installed manually.
It all seemed to work fine but it created duplicate segments in my existing Campaign Monitor account. eg. I ended up with my previous “WooCommerce Total Order Count” field and a new “WooCommerce Total Order Count 1” field.
Inspecting the plugin options it looks like the plugin now maps to the new fields but I have existing data in the old fields.
When connecting the plugin to CM it should check if the field names already exist and if so use those (or give the option to use the existing fields rather than creating new fields).
For now we are going to have to export all our CM data, delete ALL the CM WooCommerce fields, reinstall the plugin to regenerate the custom fields, then reimport our data.
]]>I initially tested this on a staging site with my list.
I then later activated it on a live site with the same list. After selecting my list in the WordPress it created duplicate WooCommerce custom field and segments in Campaign Monitor with a “1” suffix.
It was not clear wether new data would be stored in the original fields or the duplicate fields.
My expectation would be that if a WooCommerce Field or Segment already exists in Campaign Monitor it should use the existing Fields rather than creating duplicates.
]]>Hi,
I have the plugin setup and have been testing under a variety of conditions.
Users that are flagged as “Active” in Campaign Monitor are updated as expected with the correct customer details.
If a user has previously unsubscribed from the mailing list, then later completes a purchase and selects the “Subscribe” option at checkout, they are not resubscribed, they remain unsubscribe in Campaign Monitor and their details in Campaign Monitor are not updated.
I would expect if the user re-opts in at checkout they should be resubscribed and become active again in Campaign Monitor with their details updated.
Kind regards
Ben
]]>Hi,
I have installed the Campaign Monitor for WooCommerce plugin.
When I visit the setting screen it produces a Fatal error preventing the screen from rendering:
PHP Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /Webserver/sonyawinner-local/wp-content/plugins/campaign-monitor-for-woocommerce/views/admin/connect.php:119
Tracing it back it looks like I may have installed the plugin before as $appSettings
containing some pre-existing data.
When this data is used to call $clients = \core\App::$CampaignMonitor->get_clients($auth);
it returns:
stdClass Object ( [Code] => 122 [Message] => Revoked OAuth Token )
This leads to the fatal error when the $clients data is attempted to be used.
If setting exist but an API call returns “Revoked OAuth Token” it should fail gracefully and show you the settings page to enter new details.
To resolve the issue I have to manually delete all campaign_monitor_woocommerce_{$var}
settings from the database.
Since the end of Novemeber 2017, this plugin had ceased working for me.
No WooCommerce customers have been added to lists since then. The correct connection is still present in the plugin settings, and the list is selected. But no data is added to the list, despite ‘Automatically subscribe customers to your newsletter’ being checked.
I notice the plugin hasn’t been updated in over a year, and WooCommerce has gone through some substantial updates in that time. There are numerous errors in the logs, caused by this plugin
It’s essential we get this working again ASAP, or we will be forced to move to a different supplier
Thanks
]]>After the update of “WooCommerce Stripe Gateway” to v4.0.0 I can’t checkout because have an error “Payment processing failed. Please retry.”. When I asked the support of “WooCommerce Stripe Gateway” they said a have conflict with other plugins and suggest to remove one by one the plugins installed except the woocommerce and its payment gateway then I found out after I uninstalled the “Campaign Monitor for WooCommerce” the error gone and checkout is now working.
It is just my guess but I think the issue is in the code “$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);” because in “WooCommerce Stripe Gateway” code I add html_entity_decode in $_POST[‘stripe_source’] and it works.
Can you please solve this conflict. Thanks.
]]>Hi team,
I want the subscription checkbox at checkout to be pre-checked. This can be done by checking the ” Automatically subscribe customers to your newsletter” in the plugin settings. But this will automatically subscribe past customers and logged in users at checkout. This is intrusive and not what I want.
Is there a way for me to have subscription checkbox pre-checked without the side effects described above?
Please advise. Thank you ??
]]>After authorising WooCommerce with Campaign Monitor, I enter the Client ID and Client Secret, and I get the following error message:
Fatal error: Call to undefined method CS_REST_General::authorize_url() in /home/harhope/public_html/wp-content/plugins/campaign-monitor-for-woocommerce/core/CampaignMonitor.php on line 98
If I go back and come off the initial settings page and then go back, it asks me to authorise again and the process repeats.
]]>