Как создать страницу получения пользовательского заказа WooCommerce

Опубликовано: 2021-04-11

Страница получения пользовательского заказа WooCommerce Хотите добавить пользовательскую страницу благодарности в свой магазин WooCommerce? Страница благодарности — одна из самых важных страниц в любом магазине WooCommerce. ее также называют страницей получения заказа.

WooCommerce показывает содержимое страницы «Спасибо» из шаблона «thankyou.php». Этот шаблон находится в папке woocommerce/templates/checkout/ . Для иллюстрации мы будем использовать тему Storefront. Спасибо.php следует скопировать в: wp-content/plugins/woocommerce/checkout/folder .

В этом посте мы покажем вам, как создать собственный шаблон, скопировав файлthankyou.php в папку вашей темы в аналогичной структуре папок.

Вам необходимо иметь некоторые знания в области кодирования, если вы хотите использовать этот метод для настройки страницы получения вашего заказа.

Давайте посмотрим, как можно настроить страницу получения заказа.

Страница получения пользовательского заказа WooCommerce

Сначала вам нужно создать 2 папки: «woocommerce» и «checkout». Мы рекомендуем вам изменить данные, отображаемые в таблице сведений о заказе, и сведения о клиенте (при входе в систему).

Если вы не видите файл, WooCommerce использует функцию woocommerce_order_details_table(), прикрепленную к хуку woocommerce_thankyou. Функция woocommerce_order_details_table() определена в файле include/wc-template-functions.php.

Настройка страницы получения заказа путем перезаписи шаблонов WooCommerce

Страница благодарности на самом деле представляет собой набор из 4 разных файлов шаблонов:

  • шаблоны/оформить заказ/thankyou.php
  • шаблоны/заказ/заказ-details.php
  • шаблоны/заказ/заказ-детали-item.php
  • шаблоны/заказ/заказ-детали-customer.php

Вот так отображается страница полученного заказа: Заявка принята

Мы хотим добавить код купона для клиента для его следующей покупки и удалить способ оплаты из верхней части.

Мы хотим добавить его над разделом сведений о заказе.

Поэтому мы добавим в шаблон страницы благодарности следующий код :

<?php Since this is your first order, we are happy to extend a 15% discount on your next purchase. Use the coupon code &lt;strong&gt;WELCOME15&lt;/strong&gt; to avail the discount.

Ниже приведен шаблон Thankyou.php из моей темы:

<!--?php defined( 'ABSPATH' ) || exit; ?-->
<div class="woocommerce-order">

<!--?php     if ( $order ) : do_action( 'woocommerce_before_thankyou', $order->get_id() );</p> <p>                        ?-->

<!--?php if ( $order->has_status( 'failed' ) ) : ?-->

<a href="<?php echo esc_url( $order->get_checkout_payment_url() ); ?>" class="button pay"><?php esc_html_e( 'Pay', 'woocommerce' ); ?></a>

<?php if ( is_user_logged_in() ) : ?>

<a href="<?php echo esc_url( wc_get_page_permalink( 'myaccount' ) ); ?>" class="button pay"><?php esc_html_e( 'My account', 'woocommerce' ); ?></a>

<?php endif; ?>

</p>

<?php else : ?>

<p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', esc_html__( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>

<ul class="woocommerce-order-overview woocommerce-thankyou-order-details order_details">

<li class="woocommerce-order-overview__order order">

<?php esc_html_e( 'Order number:', 'woocommerce' ); ?>

<strong><?php echo $order->get_order_number(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></strong>

</li>

<li class="woocommerce-order-overview__date date">

<?php esc_html_e( 'Date:', 'woocommerce' ); ?>

<strong><?php echo wc_format_datetime( $order->get_date_created() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></strong>

</li>

<?php if ( is_user_logged_in() && $order->get_user_id() === get_current_user_id() && $order->get_billing_email() ) : ?>

<li class="woocommerce-order-overview__email email">

<?php esc_html_e( 'Email:', 'woocommerce' ); ?>

<strong><?php echo $order->get_billing_email(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></strong>

</li>

<?php endif; ?>

<li class="woocommerce-order-overview__total total">

<?php esc_html_e( 'Total:', 'woocommerce' ); ?>

<strong><?php echo $order->get_formatted_order_total(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></strong>

</li>

<?php if ( $order->get_payment_method_title() ) : ?>

<li class="woocommerce-order-overview__payment-method method">

<?php esc_html_e( 'Payment method:', 'woocommerce' ); ?>

<strong><?php echo wp_kses_post( $order->get_payment_method_title() ); ?></strong>

</li>

<?php endif; ?>

</ul>

<?php endif; ?>

<p>Since this is your first order, we are happy to extend a 15% discount on your next purchase. Use the coupon code <strong>WELCOME15</strong> to avail the discount.</p>

<?php do_action( 'woocommerce_thankyou_' . $order->get_payment_method(), $order->get_id() ); ?>

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

<?php else : ?>

<p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', esc_html__( 'Thank you. Your order has been received.', 'woocommerce' ), null ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>

<?php endif; ?>

</div>

Это результат: раздел

Важно отметить, что как только вы узнаете, какие данные поступают из какого шаблона, вам просто нужно скопировать нужный шаблон в папку вашего плагина.

Вывод

В этом посте вы узнали, как перезаписать шаблон полученного заказа. Вы можете использовать тот же метод для настройки других шаблонов. Если у вас возникли проблемы, обратитесь к квалифицированному разработчику WordPress.

Похожие статьи

  1. Перенаправление WooCommerce после оформления заказа: перенаправление на пользовательскую страницу благодарности