#php #wordpress #woocommerce #endpoint #page-title
#php #wordpress #woocommerce #конечная точка #страница-заголовок
Вопрос:
У меня есть следующий код, который работает и изменяет заголовок страницы «полученный заказ»:
add_filter( 'the_title', 'woo_title_order_received', 10, 2 );
function woo_title_order_received( $title, $id ) {
if ( function_exists( 'is_order_received_page' ) amp;amp;
is_order_received_page() amp;amp; get_the_ID() === $id ) {
$title = "Thank you, good luck!";
}
return $title;
}
Однако это вызывает фатальную ошибку на странице магазина из-за Too few arguments to function woo_title_order_received()
. После проверки в Интернете я обнаружил, что the_title
это неверно, и так и должно быть get_the_title
. Если я изменю его на это, фатальная ошибка исчезнет, но она больше не изменит заголовок на странице «Полученный заказ».
Ни один из других фрагментов, которые я нашел в Интернете, не сработал, и я не понимаю, почему вышеуказанное останавливает работу страниц магазина. Есть идеи?
Ответ №1:
Попробуйте установить $id
аргумент равным null
(полезно, когда он не определен):
add_filter( 'the_title', 'woo_title_order_received', 10, 2 );
function woo_title_order_received( $title, $id = null ) {
if ( function_exists( 'is_order_received_page' ) amp;amp;
is_order_received_page() amp;amp; get_the_ID() === $id ) {
$title = "Thank you, good luck!";
}
return $title;
}
Это может сработать…
Ответ №2:
Понятия не имею, почему вы должны использовать the_title
WordPress-хук с несколькими условиями if, в то время как в WooCommerce есть специальные хуки для этого.
'woocommerce_endpoint_' . $endpoint . '_title'
Хук фильтра позволяет изменить Order received
заголовок.
Таким образом, вы получаете:
/**
* @param string $title Default title.
* @param string $endpoint Endpoint key.
* @param string $action Optional action or variation within the endpoint.
*/
function filter_woocommerce_endpoint_order_received_title( $title, $endpoint, $action ) {
$title = __( 'Thank you, good luck!', 'woocommerce' );
return $title;
}
add_filter( 'woocommerce_endpoint_order-received_title', 'filter_woocommerce_endpoint_order_received_title', 10, 3 );