robertrosanke
Forum Replies Created
-
Hello @saivutukuru ,
Thank you for the detailed information.
I left it over the weekend and saw that everything is still fine today.
So we haven’t reconnected anything.
(We did that just a week or two ago, so I don’t know why I would need to do it again.)Everything seems to be working fine so far, and the email from Stripe was a false alarm.
Thanks, and have a great week!
Are you sure that this checkbox needs to be displayed when only one payment method is active and this function would not even make sense at the moment?
(In the other thread I linked to above, a support representative said that it’s perfectly okay for this not to be visible because we only have one method active. I’m surprised by the contradictory statements.)
We have fixed maintenance windows and no more time. It’s Friday evening here, 5:30 PM local time.
Version 10 of the Stripe plugin was only released two days ago. It’s highly unlikely that a checkbox that has supposedly been around for several versions would suddenly appear.
The changelog also does not mention this checkbox. What do we do now?
What happens if we don’t activate this box because it is not displayed?
Hello @lovingbro ,
Thank you for your prompt reply.
Here is a screenshot of what it looks like in our backend:
- https://snipboard.io/cyEmwC.jpg (Language: German)
- Under the advanced settings, we only have a debug option.
- System Status Report: https://pastebin.com/ivZJQ4Jp (available for one day)
I have never seen the setting you describe in the backend.
I would tend to rule out a plugin conflict, as we almost exclusively use the well-known standard plugins. Payment processing only PayPal, Klarna, and Stripe plugins for WooCommerce.
Hello @saivutukuru ,
You’re right. If WCML has an incompatibility, many people could be affected. Here is the link to GitHub.
The issue has just been closed. The next WooCommerce update should therefore resolve the error.
Hello @mosesmedh .
Just to help us narrow this down further — could you please confirm whether the issue still occurs when WPML/WCML is disabled? Also, have you had a chance to reach out to WPML/WCML’s support team about this conflict?
Thank you for offering to help us with the WPML issue.
We have already created an issue in the GitHub repository for WooCommerce, and a solution is already on its way with a pull request.
By default, the WooCommerce Stripe extension performs both authorization and capture simultaneously. This means that when a customer completes the checkout process, Stripe immediately captures the payment — it doesn’t depend on order status hooks running afterward.
Thank you for this information. That was exactly what we needed. Many thanks. So everything is fine.
Have a nice weekend!
Hello @awaatklarna ,
Thanks for your help. Everything seems to be working fine with the temporary workaround. The ticket can be closed.
Hello @awaatklarna ,
Thank you for your feedback.
We had an internal meeting last week and tried everything out. It seems that we cannot issue refunds if an order has not yet been captured.
- All affected orders appear to remain open in Klarna for 30 days.
- The payout is delayed, but it appears to take place even if it has not been captured.
However, it seems that a workaround would be to log into the Klarna dashboard and manually capture all orders affected by the WCML error once a week.
The Klarna dashboard synchronizes the capture process in the WooCommerce backend, so we can continue working there as normal. (Refunds are working.)This is a minimal additional effort that we can cope with temporarily until WPML/WCML fixes the error.
Do you see a problem with this approach, or is it okay for now?
Thank you for the clarification. Could you please raise a support ticket here in order for our team to look into this further. The team requests details such as how the auto-capture is implemented, logs and screenshots of the woocommerce order notes, so please also include that in the support ticket.
Thanks for the link to your support page.
I haven’t opened another ticket for now. Maybe—if you don’t have any concerns about the manual capture process—we have a temporary solution and can save ourselves more time on this issue.
Hello @inpsydekrystian ,
Thank you for your reply. We are glad that PayPal works out of the box for us despite these unfavorable circumstances.
Well, in this specific case, their response makes a bit of sense, because the issue indeed goes beyond what any payment gateway plugin can control and sits between WooCommerce and WCML.
I see it differently. I am simply asking about how a plugin works. I have neither requested nor submitted any custom code. I just want to know how the plugin works so that I can act correctly.
Perhaps I communicated my request in a technical way, making it sound more complicated than it was. That could be the case.
The ticket can be closed. Thank you for your support, @inpsydekrystian , that was very helpful.
Hello @mosesmedh .
Perhaps my request was too technical, making it seem as if it was about an individual implementation. That is not the case.
We simply have a case where, due to a plugin conflict (WPML/WCML), the core WooCommerce hooks related to order status changes have failed in certain circumstances for many orders.
I just want to know whether this is a problem for the Stripe plugin (we only use credit cards via Stripe) or not. At first glance, everything looks fine. Stripe still seems to be processing payments correctly.
With Klarna for WooCommerce, for example, we now have to capture orders manually in the Klarna dashboard, because otherwise payments may be delayed, as Klarna relies on the woocommerce_order_status_completed hook, which is no longer guaranteed to fire.
PayPal for WooCommerce, for example, says that everything is fine. They capture the payment directly when it is created.
The Stripe plugin is currently the only plugin that refuses to provide us with information.
I’m simply interested in understanding how the Stripe plugin works. Do I have to manually capture payments via Stripe credit cards if the status hooks may not fire, or not?Hello @inpsydekrystian ,
Thank you for your detailed response.
I really appreciate that you want to help us, as correct payment processing is essential.
Stripe plugin support, for example, simply rejected me. They are acting as if my request were a custom code request. 😮I looked at our settings. We have set intent = CAPTURE. That should take care of everything, and we don’t have to do anything manually for PayPal orders, as far as I understand?
I didn’t attach the system report. We probably don’t need it anymore. (To be honest, we also have a lot of individual extensions and database tables in the shop that I don’t want to leak. If we need it, I’ll take care of removing the sensitive parts and send you the report. Otherwise, I’d rather save myself the effort.)
I just want to briefly share the current status of the investigation, because I gained some new insights today.
- I monitor all relevant REST requests and have integrated a few log points directly into the WooCommerce code so that we can gain insights from real orders.
- It currently looks as if no order-status-changed-hooks are firing when foreign-language orders are processed via REST when using WPML, specifically WCML, with WooCommerce >= 10.0.x.
The cause seems to lie in the following pull request, which made it into WC 10.0.x: https://github.com/woocommerce/woocommerce/pull/46887/files
Before that, everything was fine, including for us. We have only been affected since the update from WooCommerce 9.9.x to 10.0.x in combination with WCML 5.5.1. Both were updated on the same day.
The
get_changes()check for the variable$order_items_persistedis always false because WCML converts the product IDs and names to the base shop language. I traced their code to find out and logged theget_changes()output. For all foreign language orders, this results in a deviation and the entire code block, which is so important, is not executed via REST requests:
https://github.com/axi/woocommerce/blob/4285cb2e1665b6b9e503f1d14a97235e6d5a25a2/plugins/woocommerce/includes/class-wc-order.php#L430At least that’s how it looks at the moment. I will continue to check the behavior with the next orders that are processed via REST.
Hello Moses,
Thank you for your prompt reply.
I didn’t ask for a code example, but rather how your plugin works and how to proceed in my situation.
It can happen that a workflow doesn’t work as expected. This is what happened here after years without problems. What is the solution in this case? And is one even necessary?
For example, it is currently unclear to me whether the affected Stripe orders have been completely processed by Stripe or whether we still need to synchronize any data, and if so, how we should do that.
How can we tell if action is needed?
If you want me to look something up for you in our database, let me know – e.g., the existence of certain order metadata. Then I’ll check it out.
Edit: Just to clarify. I would like to point out that orders placed with us in recent weeks are affected. So we’re not just talking about a handful. That’s why I’m explicitly asking for the correct way to proceed.
Processing one order incorrectly might be acceptable, but not many.
Hello.
Thanks for your reply.
Yes, that’s correct. I have already saved the order in question again without making any changes, just to test it. However, this did not change anything.It seems that it is not activated if the order is already marked as completed and then saved again without any changes.
My guess is that there must be a status change.
In the code of your plugin, it looks as if it listens for the event “woocommerce_order_completed.”We would probably have to set the order back to “in progress” and then complete it again?
However, the customer would then receive the “in progress” email again. They would also receive the “order completed” email, even though they may have already received the goods days or weeks ago.
This is not ideal, but it might be acceptable. What do you suggest?
Edit: Close ticket.