Сообщения WooCommerce Notice, как их редактировать?
Я пытаюсь выяснить, где WooCommerce создает это сообщения, когда есть успех, ошибка или уведомление в WooCommerce. Я хочу редактировать эти сообщения, чтобы соответствовать сценарию более аккуратно, а также редактировать HTML. Где находятся эти сообщения и как их редактировать?
5 ответов
многие из них находятся непосредственно в файлах плагина - к сожалению. Некоторые сообщения привязаны к крючкам фильтра, которые позволяют редактировать их, не возясь с файлами плагинов, но это не всегда так.
сообщение, которое вы хотели изменить, было "название продукта было успешно добавлено в корзину". Этот параметр задается в функции wc_add_to_cart_message в WC-cart-функциях.php и эта функция позволяет изменять его с помощью фильтра:
wc_add_notice( apply_filters( 'wc_add_to_cart_message', $message, $product_id ) );
Так в вашем функции.php-файл вы можете добавить что-то вроде:
add_filter('wc_add_to_cart_message', 'handler_function_name', 10, 2);
function handler_function_name($message, $product_id) {
return "Thank you for adding product" . $product_id;
}
откройте файлы плагинов и найдите wc_add_notice
:
эта функция имеет фильтр:
apply_filters( 'woocommerce_add_' . $notice_type, $message );
на $notice_type
является вторым аргументом, переданным во всех этих случаях.
использование чего-то подобного должно работать:
add_filter( 'woocommerce_add_error', function( $message ) {
if( $message == 'Some message' )
$message = '';
return $message;
});
фильтры, упомянутые здесь, отлично работают для редактирования самого сообщения, но если вы хотите отредактировать фактическую разметку HTML, содержащую сообщение уведомления, вам нужно использовать шаблоны уведомлений в templates > notices
.
здесь есть три разных файла, каждый для различных видов уведомлений. В моем случае я хотел добавить класс к купону, примененному успешно, поэтому я скопировал success.php
в мой файл темы. Мой код тогда выглядел так:
<?php foreach ( $messages as $message ) : ?>
<?php
$om_css_class = "";
if ( $message == "Coupon code applied successfully." ) {
$om_css_class = "coupon-notice-msg";
}
?>
<div class="woocommerce-message <?php echo $om_css_class; ?>"><?php echo wp_kses_post( $message ); ?></div>
<?php endforeach; ?>
я наткнулся на этот ответ и смог реализовать для производственного сайта. Этот ответ связан с уведомлениями об ошибках WooCommerce. Вам нужно найти коды в отдельных файлах классов (~woocommerce / includes/). Для моей цели код был в ~woocommerce / includes / class-wc-coupon.в PHP
/**
* Modify the coupon errors:
*/
add_filter( 'woocommerce_coupon_error', 'wpq_coupon_error', 10, 2 );
function wpq_coupon_error( $err, $err_code ) {
return ( '103' == $err_code ) ? '' : $err;
}
благодаря этой странице: http://wpquestions.com/WooCommerce_Remove_Coupon_code_already_applied_error_message/10598
Я сделал это для . путь к файлу woocommerce/templates/notices/error.php
<ul class="woocommerce-error" role="alert">
<?php
foreach ( $messages as $message ) :
if($message=="<strong>Billing Email address</strong> is a required field.") { $message="<strong>Email address</strong> is a required field."; }?>
<li><?php echo wp_kses_post( $message ); ?></li>
<?php endforeach; ?>
</ul>