No se puede cambiar el mensaje de “Gracias” de Woocommerce

3 minutos de lectura

Avatar de usuario de Aaron
Aarón

Intenté editar el archivo thanksyou.php en woocommerce para incluir texto nuevo, pero sigue mostrando el mensaje predeterminado. No estoy familiarizado con lo que significa nada en php, pero esto es lo que he estado intentando:

<?php
/**
* Thankyou page
*
* @author       WooThemes
* @package  WooCommerce/Templates
* @version     2.2.0
*/

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

if ( $order ) : ?>

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

    <p><?php _e( 'Unfortunately your order cannot be processed as the originating bank/merchant has declined your transaction.', 'woocommerce' ); ?></p>

    <p><?php
        if ( is_user_logged_in() )
            _e( 'Please attempt your purchase again or go to your account page.', 'woocommerce' );
        else
            _e( 'Please attempt your purchase again.', 'woocommerce' );
    ?></p>

    <p>
        <a href="https://stackoverflow.com/questions/27987878/<?php echo esc_url( $order->get_checkout_payment_url() ); ?>" class="button pay"><?php _e( 'Pay', 'woocommerce' ) ?></a>
        <?php if ( is_user_logged_in() ) : ?>
        <a href="<?php echo esc_url( get_permalink( wc_get_page_id( 'myaccount' ) ) ); ?>" class="button pay"><?php _e( 'My Account', 'woocommerce' ); ?></a>
        <?php endif; ?>
    </p>

<?php else : ?>

    <p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Your shirt order has been received and will be at your doorstep in approximately 4 weeks. Thanks again for your support (and general badassery)!', 'woocommerce' ), $order ); ?></p>

    <ul class="order_details">
        <li class="order">
            <?php _e( 'Order:', 'woocommerce' ); ?>
            <strong><?php echo $order->get_order_number(); ?></strong>
        </li>
        <li class="date">
            <?php _e( 'Date:', 'woocommerce' ); ?>
            <strong><?php echo date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ); ?></strong>
        </li>
        <li class="total">
            <?php _e( 'Total:', 'woocommerce' ); ?>
            <strong><?php echo $order->get_formatted_order_total(); ?></strong>
        </li>
        <?php if ( $order->payment_method_title ) : ?>
        <li class="method">
            <?php _e( 'Payment method:', 'woocommerce' ); ?>
            <strong><?php echo $order->payment_method_title; ?></strong>
        </li>
        <?php endif; ?>
    </ul>
    <div class="clear"></div>

<?php endif; ?>

<?php do_action( 'woocommerce_thankyou_' . $order->payment_method, $order->id ); ?>
<?php do_action( 'woocommerce_thankyou', $order->id ); ?>
<p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Your shirt order has been received and will be at your doorstep in approximately 4 weeks. Thanks again for your support (and general badassery)!', 'woocommerce' ), null ); ?></p>

La mejor manera de hacer esto sería filtrar el mensaje de agradecimiento de WC:

add_filter( 'woocommerce_thankyou_order_received_text', 'd4tw_custom_ty_msg' );

    function d4tw_custom_ty_msg ( $thank_you_msg ) {

        $thank_you_msg =  'This is your new thank you message';

    return $thank_you_msg;
}

Tal vez su tema esté anulando su archivo de plantilla de agradecimiento. Como regla general, nunca debe editar el complemento directamente. En su lugar, mueva el thankyou.php a tu tema. Mover este archivo a wp-content/themes/yourtheme/woocommerce/checkout/thankyou.php. Más información en la documentación aquí.

¿Ha sido útil esta solución?