Пользовательское действие WC Ajax не работает в WooCommerce

Я создаю новый пользовательский плагин в WooCommerce. Мне нужно загрузить файл с помощью ajax из внешнего интерфейса, поэтому я добавил следующий код в свой класс платежного шлюза. Я хочу создать новую конечную точку ajax в классе.

Я добавил следующую строку в конструктор.

add_action( 'wc_ajax_wc_upload_payment_receipt', array( $this, 'wc_ajax_upload_payment_receipt'));

И создайте следующую функцию в классе

public function wc_ajax_upload_payment_receipt(){
 echo "hi";
 print_r($_REQUEST);
}

Теперь, когда я вызываю свой запрос ajax, используя WC_AJAX::get_endpoint( 'wc_ajax_upload_payment_receipt' ), он ничего не возвращает.

Почему это не входит в мою созданную функцию?


person Gaganpreet Kaur    schedule 22.05.2020    source источник
comment
Ваш фактический код не подлежит тестированию: вопрос должен быть обновлен, чтобы включить желаемое поведение, конкретную проблему или ошибку, и кратчайший код, необходимый для воспроизведения проблемы..   -  person LoicTheAztec    schedule 23.05.2020


Ответы (1)


Обратите внимание, что имя вашего хука действия не должно совпадать с именем функции…

Классы Woocommerce чувствительны к регистру, поэтому замените неверный WC_AJAX на WC_Ajax при использовании метода get_endpoint():

WC_Ajax::get_endpoint( $request );

Документация по теме: Исходный код класса Woocommerce WC_Ajax

person LoicTheAztec    schedule 22.05.2020