2017-10-08 5 views
1

단축 코드가있는 일부 제품을 표시하는 함수를 만들었지 만 문제는 해당 페이지에 오류 메시지가 표시되지 않는다는 것입니다. 예를 들어 일부 필드가 필요한 경우 카트/체크 아웃 페이지에만 표시됩니다.페이지에 Woocommerce 알림 표시

여기 내 코드의 일부입니다 :

while ($query->have_posts()) : $query->the_post(); 
global $product; 
?> 
<div style="border-bottom:thin dashed black;margin-bottom:15px;"> 
<h2><?php the_title(); ?> <span><?php echo $product->get_price_html();?></span></h2> 
<p><?php the_excerpt();?></p> 
<?php global $product; 
if($product->is_type('simple')){ 
woocommerce_simple_add_to_cart(); 
} 

내가이 단축 코드가 사용중인 페이지의 오류 메시지를 보여 추가해야합니까?

답변

2

Woocommerce 고지 사항을 표시하는 전용 wc_print_notices() 기능을 사용해야합니다. 이 함수는 해당 목적을 위해 woocommerce 템플릿에 연결되거나 사용됩니다.

짧은 코드 페이지에서 WooCommerce 알림을 활성화하려면 짧은 코드 내에 wc_print_notices() 기능을 추가해야합니다.

나는 woocommerce 고지 인쇄로 당신은 아래 (테스트 목적) 비슷한 단축 코드 재현 :

if(!function_exists('custom_my_products')) { 
    function custom_my_products($atts) { 
     // Shortcode Attributes 
     $atts = shortcode_atts(array('ppp' => '12',), $atts, 'my_products'); 

     ob_start(); 

     // HERE we print the notices 
     wc_print_notices(); 

     $query = new WP_Query(array(
      'post_type'  => 'product', 
      'posts_per_page' => $atts['ppp'], 
     )); 

     if ($query->have_posts()) : 
      while ($query->have_posts()) : 
       $query->the_post(); 
       global $product; 
      ?> 
       <div style="border-bottom:thin dashed black;margin-bottom:15px;"> 
       <h2><?php the_title(); ?> <span><?php echo $product->get_price_html();?></span></h2> 
       <p><?php the_excerpt();?></p> 
      <?php 
       if($product->is_type('simple')) 
        woocommerce_simple_add_to_cart(); 

      endwhile; 
     endif; 
     woocommerce_reset_loop(); 
     wp_reset_postdata(); 

     return '<div class="my-products">' . ob_get_clean() . '</div>'; 
    } 
    add_shortcode('my_products', 'custom_my_products'); 
} 

코드 활성 자식 테마의 function.php 파일의 이동을 (또는 테마) 또는 모든 플러그인 파일에도 포함될 수 있습니다. 당신이

  • 이있는 단축 코드에 당신이 결코 기억하지 2 회 global $product;을 ... 사용하는 코드에서

    • :

      이것은 테스트 WooCommerce 3+

      노트에 작동합니다 에코 또는 아무것도 인쇄하지만, 당신 반환 일부 출력 ...

    • 마지막에 루프와 쿼리를 재설정하는 것을 잊지 마십시오.
  • 관련 문제