Сначала ошибка возникает из этих двух строк:
$cash = str_replace("Cash", "1", "$payment_method_code");
$terminal = str_replace("Terminal", "2", "$payment_method_code");
Им нужно удалить символ "
из переменных, чтобы иметь вместо этого:
$cash = str_replace("Cash", "1", $payment_method_code);
$terminal = str_replace("Terminal", "2", $payment_method_code);
Это решит вашу проблему с ошибкой.
Теперь вы можете попробовать следующее, используя WC_Order
get_payment_method_title()
метод:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$pay = array("Cash" => 1, "Terminal" => 2);
$param['pay'] = $pay[$order->get_payment_method_title()];
}
Это может сработать.