Como criar uma página personalizada de pedidos recebidos WooCommerce

Publicados: 2021-04-11

Página recebida de pedido personalizado do WooCommerce Deseja adicionar uma página de agradecimento personalizada em sua loja WooCommerce? A página de agradecimento é uma das páginas mais importantes em qualquer loja WooCommerce. também é chamada de página do pedido recebido.

O WooCommerce mostra o conteúdo da página de agradecimento do modelo Thankyou.php. Este modelo é encontrado na pasta woocommerce/templates/checkout/ . Para fins de ilustração, usaremos o tema Storefront. O Thankyou.php deve ser copiado para: wp-content/plugins/woocommerce/checkout/ folder .

Neste post, mostraremos como você pode criar nosso próprio template copiando o arquivo Thankyou.php para a pasta do seu tema em uma estrutura de pastas semelhante.

Você precisa ter algum conhecimento de codificação se quiser usar esse método para personalizar sua página de pedidos recebidos.

Vamos dar uma olhada em como você pode personalizar a página de pedidos recebidos.

Página recebida de pedido personalizado do WooCommerce

Primeiro, você precisa criar as 2 pastas, “woocommerce” e “checkout”. Recomendamos que você altere os dados mostrados na tabela Detalhes do pedido e os detalhes do cliente (quando conectado).

Se você não vir o arquivo, o WooCommerce usa uma função woocommerce_order_details_table() que está anexada ao gancho woocommerce_thankyou. A função woocommerce_order_details_table() é definida no arquivo includes/wc-template-functions.php.

Personalizando a página do pedido recebido substituindo os modelos do WooCommerce

A página de agradecimento é na verdade uma coleção de 4 arquivos de modelo diferentes:

  • templates/checkout/thankyou.php
  • templates/order/order-details.php
  • templates/order/order-details-item.php
  • templates/order/order-details-customer.php

É assim que a página do pedido recebido é exibida: Pedido Recebido

Queremos adicionar um código de cupom ao cliente para sua próxima compra e remover o método de pagamento da seção superior.

Queremos adicioná-lo acima da seção de detalhes do pedido.

Portanto, adicionaremos o seguinte código no modelo de página de agradecimento :

<?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.

Abaixo está o template Thankyou.php do meu tema:

<!--?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>

Este é o resultado: seção

É importante notar que, uma vez que você saiba quais dados estão vindo de qual template, você só precisa copiar o template correto para a pasta do seu plugin.

Conclusão

Neste post, você aprendeu como substituir o modelo de pedido recebido. Você pode usar o mesmo método para personalizar os outros modelos. Se você tiver algum problema, consulte um desenvolvedor WordPress qualificado.

Artigos semelhantes

  1. Redirecionamento do WooCommerce após o checkout: Redirecionar para a página de agradecimento personalizada