Мы используем woocommerce_thankyou для выполнения действия при оформлении заказа. Однако в простом тесте, если я установил действие и просто «echo» Test »; это происходит 4 раза. Это код
class OrderController { public function __construct() { add_action('woocommerce_thankyou', array($this, 'orderSubmit')); } function orderSubmit() { global $woocommerce; echo "test"; // happens 4 times } }
Сегодня я столкнулся с той же проблемой.
Я зашел в серверный просмотрщик файлов (или локальный хост) и перешел на wp-content / plugins / woocommerce / templates / checkout
Внутри папки проверки есть файл php с именем thankyou.php.
Вокруг строки 65 или около того появится код, который говорит
<?php do_action( 'woocommerce_thankyou' . $order->payment_method, $order->id ); ?>
Или что-то похожее
Проблема в моей заключается в том, что у нее было 2 из этих действий.
Избавьтесь от всех них, кроме одного, и это должно исправить вашу проблему.
Обязательно проверьте свою woocommerce после этого, чтобы убедиться, что вы не удалили неправильный