Я создал пользовательский тип записи для поддержки проверки woocommerce. Он работает нормально, так же, как шорткод [woocommerce_checkout] работает с любым сообщением в блоге.
Проблема с конечной точкой оплаты заказа. После нажатия «Перейти к оформлению заказа» он будет перенаправлен на страницу оформления заказа по умолчанию в woocommerce.
WooCommerce поддерживает конечные точки для типа записи "страница". Я ищу зацепку, чтобы изменить тип сообщения на любой пользовательский тип сообщения.
$ wp-> query_vars ['order-pay'] не установлен и поэтому выдает 404. Попытка установить параметр запроса путем временного редактирования parse_request () в ядре не помогла.
add_filter( 'woocommerce_get_checkout_payment_url', 'changeUrl',10,2);
function changeUrl($pay_url, $obj ){
$default_checkout = wc_get_page_permalink( 'checkout' );
$order_id = $obj->get_id();
// this is my checkout page saved in order meta previously
$checkout_id = get_post_meta($order_id,"_my_custom_checkout_id",true);
$new_permalink = get_permalink($checkout_id);
$pay_url = str_replace($default_checkout, $new_permalink,$pay_url);
return $pay_url;
}
http://localhost/my-checkout-page/order-pay/1456/?pay_for_order=true&key=wc_order_q0MfApcZqn6Qt
URL этой пользовательской страницы оформления заказа выдает 404
Рабочий URL (по умолчанию страница оформления заказа):
http://localhost/checkout/order-pay/1456/?pay_for_order=true&key=wc_order_q0MfApcZqn6Qt