If the suggested fix doesn’t work (woocommerce_order_email_verification_required filter), check if any of the plugins are injecting $_POST data after the checkout.
If $_POST is not empty on the thankyou page the guest_should_verify_email function will return before reaching the filter.
It is the line 390 in wp-content\plugins\woocommerce\includes\shortcodes\class-wc-shortcode-checkout.php:
if ( ! empty( $_POST ) && ! wp_verify_nonce( $_POST['check_submission'] ?? '', 'wc_verify_email' ) ) {
return true;
}
Ok I went through all the plugins and found the one that caused this verification to appear.. this plugin.. https://he.wordpress.org/plugins/tracking-code-manager/
I don’t know if it’s the plugin itself or the codes that were in it..
In any case, the verification was removed..
Ok I went through all the plugins and found the one that caused this verification to appear.. this plugin.. https://he.wordpress.org/plugins/tracking-code-manager/
I don’t know if it’s the plugin itself or the codes that were in it..
In any case, the verification was removed..
My site same problem and if I deactivate CartBounty Pro plugin after is good. Anybody can send information cart bounty developer team
-
This reply was modified 1 year, 1 month ago by molnarmonika.
i have same problem still haven’t found soultion how to diable it if anyone can help it would be great .
Hi @konamiman and @babylon1999
I do not want to disable this message but I really need to translate the output string to my customer’s language.
I have tried Loca Translate but that can not find the string in WooCommerce translation database.
Could you be as kind as to help me out I would be more than grateful indeed.
Thank you very much in advance.
Best regards,
Endre
@ucsendre, I also tried to use Loco translate for the same purpose but I didn’t find that string anywhere.
i have same problem with all users not only guests @automattic @konamiman please help us solve this major problem
I’m having the same issue!! Came out of nowhere. Could it be due to wordpress fence security?
So, I found a temporary solution (sort of). In class-wc-shortcode-checkout.php I commented lines 303 – 319. Those:
// For non-guest orders, require the user to be logged in before showing this page.
if ( $order_customer_id && get_current_user_id() !== $order_customer_id ) {
wc_print_notice( esc_html__( 'Please log in to your account to view this order.', 'woocommerce' ), 'notice' );
woocommerce_login_form( array( 'redirect' => $order->get_checkout_order_received_url() ) );
return;
}
// For guest orders, request they verify their email address (unless we can identify them via the active user session).
if ( self::guest_should_verify_email( $order, 'order-received' ) ) {
wc_get_template(
'checkout/form-verify-email.php',
array(
'failed_submission' => ! empty( $_POST['email'] ), // phpcs:ignore WordPress.Security.NonceVerification.Missing
'verify_url' => $order->get_checkout_order_received_url(),
)
);
return;
}
Those lines are responsible for non-guest users to get login page and for guest users the get email verify page. Once I commented them, the Thank You page functions as previously. Now, it’s a change in the core of the plugin, and as mentioned here before it will be overwritten in any update. That’s the only solution that worked for me. As I said, it’s tricky and not the safest solution so I am not taking any responsibility for that. I prefer not to change the core but this one worked out.
Hi @vtnchk1,
Thanks for sharing the custom code, it can help others with the same requirements as yours.
Now, it’s a change in the core of the plugin, and as mentioned here before it will be overwritten in any update. That’s the only solution that worked for me. As I said, it’s tricky and not the safest solution so I am not taking any responsibility for that. I prefer not to change the core but this one worked out.
We understand where you are coming from here. If you wish, you can probably create a custom plugin using this code and run it on your store. That way, it will ensure it won’t be overwritten when WooCommerce core is updated, and you can get away with may be tweaking this code if needed when an update breaks it or such.
Thanks again for sharing your solution here for others to learn from and use.
Any progress on this? It’s not a small thing.
Hi @gsim,
Have you tried the recommendation here? Did it not work?
I did yes @simplysaru but alas it did not work. As the server is a busy one I have just reverted to editing the plugin core as a temporary measure.
Hi @gsim we’re glad to hear that you’ve managed a temporary workaround.
Note that our developers are continuing their discussions around this subject here. The increased security offered by this measure has in turn affected a number of plugins which interact with orders during checkout, and we recommend following the issue for further updates.