我想在我的部分中移动woocommerce错误。我怎么做?我是否必须更改模板文件中的任何内容?对于所有错误消息,我希望它出现在“row-wrap”类之前。
<div class="row">
<ul class="woocommerce-error">
<?php foreach ( $messages as $message ) : ?>
<li><?php echo wp_kses_post( $message ); ?></li>
<?php endforeach; ?>
</ul>
<section class="row-wrap prod-wrap">
<!-- WOOCOMMERCE ERROR appear here -->
<div class="row-inner">
<form action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post">
</form>
</div>
</section>
</div>
答案 0 :(得分:2)
您可以使用jQuery在woocommerce的结帐页面上移动错误消息:
$('form.checkout.woocommerce-checkout').bind('DOMSubtreeModified',function(){
if ($('ul.woocommerce-error').length) {
$('ul.woocommerce-error').insertAfter('.place-order .blue-box')//where you want to place it
}});
答案 1 :(得分:1)
我使用它并且运作良好:
function move_woocommerce_message(){
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
add_action( 'woocommerce_single_product_summary', 'wc_print_notices', 35 );
}
add_filter('wp', 'move_woocommerce_message');
答案 2 :(得分:0)
通知由wc_print_notices()
函数打印,由WooCommerce添加到以下挂钩中:
add_action( 'woocommerce_shortcode_before_product_cat_loop', 'wc_print_notices', 10 );
add_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 );
add_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
要移动它们,您必须将它们从现有位置移除,然后将它们添加到新的挂钩名称。
function so_34226268_remove_notices(){
remove_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 );
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
add_action( 'your_new_hook_location_here', 'wc_print_notices', 10 );
add_action( 'another_new_hook_location', 'wc_print_notices', 10 );
}
add_action( 'woocommerce_before_shop_loop', 'so_34226268_remove_notices', 1 );