Избегайте перехода к оформлению заказа -текст кнопки обновляется до текста по умолчанию на странице корзины WooCommerce

#php #wordpress #woocommerce #cart #hook-woocommerce

#php #wordpress #woocommerce #Корзина #крюк-woocommerce

Вопрос:

В WooCommerce в моей дочерней теме магазина я отредактировал код, proceed-to-checkout-button.php чтобы изменить формулировку с «Перейти к оформлению заказа» на «Оформить заказ»:

 if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly.
}
?>

<a href="<?php echo esc_url( wc_get_checkout_url() ); ?>" class="checkout-button button wc-forward">
    <?php esc_html_e( 'Checkout', 'woocommerce' ); ?>
</a> 
  

Но когда пользователь изменяет количество товара на странице корзины, текст кнопки возвращается к значению по умолчанию «Перейти к оформлению заказа».

Есть ли фильтр или где редактировать этот обновленный текст?


РЕДАКТИРОВАТЬ — проблема решена

Проблема была связана с определенной опцией корзины в плагине WooCommerce Better Usability pro, где опция «Отображать текст при автоматическом обновлении корзины» должна быть отключена (не выбрана).

Ответ №1:

Вместо переопределения proceed-to-checkout-button.php файла следует использовать следующее:

 remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
add_action( 'woocommerce_proceed_to_checkout', 'custom_button_proceed_to_checkout', 20 );
function custom_button_proceed_to_checkout() {
    echo '<a href="'.esc_url(wc_get_checkout_url()).'" class="checkout-button button alt wc-forward">' .
    __("Checkout", "woocommerce") . '</a>';
}
  

Ввод кода functions.php файл вашей активной дочерней темы (или активной темы). Протестировано и работает в последней версии WooCommerce в разделе Тема витрины.

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

Комментарии:

1. Привет @LoicTheAztec, спасибо, но с вашим кодом у меня все еще есть «Перейти к оформлению заказа» после обновления номеров продуктов. staging. hemen-biarritz.com/cart

2. @Louis Это связано с вашими многочисленными настройками, поскольку я тестирую все в последней версии WooCommerce в разделе Тема витрины (с дочерней темой), и она отлично работает, даже если я меняю количество в корзине. Итак, ваша проблема, похоже, связана с фрагментами корзины (Ajax). Большинство ваших вопросов, связанных с SackOverFlow, связаны с настройками, которые вы выполняете с некоторых пор.

3. Можем ли мы общаться в личных сообщениях?

4. Я только что отправил вам сообщение по вашей ссылке «свяжитесь со мной». с моим номером телефона. Спасибо 😉

Ответ №2:

Этот файл proceed-to-checkout-button.php вызывается из функции woocommerce_button_proceed_to_checkout (), подключенной к действию ‘woocommerce_proceed_to_checkout’ — вы можете найти его в woocommerce/includes/wc-template-hooks.php

Итак, вы можете переопределить функцию woocommerce_button_proceed_to_checkout() — просто добавьте это в свой functions.php

 /**
*   Change Proceed To Checkout Text in WooCommerce
*   Add this code in your active theme functions.php file
**/
function woocommerce_button_proceed_to_checkout() {
    
       $new_checkout_url = WC()->cart->get_checkout_url();
       ?>
       <a href="<?php echo $new_checkout_url; ?>" class="checkout-button button alt wc-forward">
       
       <?php _e( 'Go to Secure Checkout', 'woocommerce' ); ?></a>
       
<?php
}
  

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

Комментарии:

1. Спасибо за ваш ответ, но результат точно такой же: первое отображение правильное (оно показывает, что изменяет ваш код), но при обновлении количества товара кнопки обновляются, и текст возвращается к значению по умолчанию «Перейти к оформлению заказа»