Я использую WordPress с темой Woodmart и хочу, чтобы заказы выполнялись автоматически. Я установил плагин codesnippets и скопировал следующий код с сайта codesnippet:
Но заказ, который ранее находился в обработке, не завершен! Какой способ оплаты мне следует указать там, где написано «Изменить способ оплаты»?
Автоматически заполненный заказ WooCommerce на основе способа оплаты «Moneris Gateway».
add_action('woocommerce_order_status_changed', 'ts_auto_complete_by_payment_method');
function ts_auto_complete_by_payment_method($order_id)
{
if ( ! $order_id ) {
return;
}
global $product;
$order = wc_get_order( $order_id );
if ($order->data['status'] == 'processing') {
$payment_method=$order->get_payment_method();
if ($payment_method! = "cod") // Change the Payment Method
{
$order->update_status( 'completed' );
}
}
}






При использовании Платёжного шлюза WC Moneris в WooCommerce идентификатор платежа, определенный для Платёжного шлюза Moneris, выглядит просто: moneris.
Его можно найти в файле плагина include/class-wpheka-gateway-moneris.php (строка 30): $this->id = 'moneris';
Теперь на основе Как автоматически заполнять оплаченные заказы в WooCommerce? код ответа. Вот правильный способ автозаполнения заказов, оплаченных через платежный шлюз Moneris:
add_filter( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order', 10, 3 );
function wc_auto_complete_paid_order( $status, $order_id, $order ) {
if ( $order->get_payment_method() === 'moneris' ) {
$status = 'completed';
}
return $status;
}
Код находится в файле function.php вашей дочерней темы (или в плагине). Он должен работать.
Большое спасибо за ваше время. Я это сделал, но предыдущий заказ все еще в обработке! Этот код не работает для предыдущих заказов? ... только заказы после этого будут автоматически подтверждаться? Или это вообще не сработало? Теплые пожелания.