Как отредактировать вывод хука "woocommerce_thankyou" в WooCommerce? - PullRequest
1 голос
/ 29 февраля 2020

Я уверен, что об этом спрашивали много раз. Я даже получил несколько ответов, но я действительно не понимаю, как редактировать какие-либо хуки "action" или "filter" в Wordpress + WooCommerce.

Как пример на странице оформления заказа, внизу, где обычно находится Сводка корзины покупок, эта информация генерируется этим кодом:

<?php do_action( 'woocommerce_thankyou', $order->get_id() ); ?>

Я пробовал другой способ поиска "woocommerce_thankyou" в других файлах, но я ничего не могу найти. Итак, как генерируется выходной код? Там должен быть файл, который вызывается для этого.

1 Ответ

2 голосов
/ 01 марта 2020

Вы просто пропустили файл плагина WooCommerce includes/wc-template-hooks.php, где ловушка действия woocommerce_thankyou вызывается в строке 260 , вызывая функцию woocommerce_order_details_table(), которая находится в includes/wc-template-functions.php от строки 2641 до 2560 :

if ( ! function_exists( 'woocommerce_order_details_table' ) ) {

    /**
     * Displays order details in a table.
     *
     * @param mixed $order_id Order ID.
     */
    function woocommerce_order_details_table( $order_id ) {
        if ( ! $order_id ) {
            return;
        }

        wc_get_template(
            'order/order-details.php',
            array(
                'order_id' => $order_id,
            )
        );
    }
}

Как вы можете видеть, эта функция вызывает шаблон WooCommerce order/order-details.php, который выводит связанные детали заказа.

Таким образом, вам придется отредактировать шаблон WooCommerce order/order-details.php, чтобы внести изменения. Но этот шаблон много раз используется на других страницах.

Таким образом, вы можете настроить таргетинг на страницу WooCommerce с помощью условного тега is_wc_endpoint_url('order-received'), и вы сможете переопределить этот шаблон, используя его следующим образом:

if ( is_wc_endpoint_url('order-received') ) {
    // The altered code for the thankyou page
} else {
    // The normal code for all other pages
}

Похожие: Хуки действий WooCommerce и шаблоны переопределения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...