質問: 0 ) { // display our error message wc_add_notice( sprintf( '<h5 style="letter-spacing:0.5px;color:white;text-align:center;">/!\&nbsp; une commande de %s bouteilles n&#39;est pas possible&nbsp;! &nbsp; /!\ </h5><br /> <br /><p style="text-align:center;"> l&#39;envoi n&#39;est possible que pour 1 | 2 | 3 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 72 | 96 | 120 et plus bouteilles.</p>', $cart_product_total, $total_quantity ), 'error' ); } $i++; endif; endforeach; } } ありがとうございました :)
回答: スクリプトの大部分でifステートメントとforeachステートメントに代替構造を使用し(:の代わりに{}を使用)、下部にif(){}の中を混ぜるので、エラーメッセージがどのように表示されるのかわかりません。許可されていないif : endif。詳細についてはこちらを参照してください。 http://php.net/manual/en/control-structures.alternative-syntax.php 私はあなたのコードを少し再構成しましたが、それをテストすることができないので、これを試してみてください:add_action( 'woocommerce_check_cart_items', 'check_total' ); function check_total() { // only run in the cart or checkout pages if( is_cart() || is_checkout() ) { global $woocommerce, $product; $total_quantity = 0; $display_notice = 1; $i = 0; //loop through all cart products foreach ( $woocommerce->cart->cart_contents as $product ) { // see if any product is from the cuvees category or not if ( has_term( 'cuvees', 'product_cat', $product['product_id'] )) { $total_quantity += $product['quantity']; } } // set up the acceptable totals and loop through them so we don't have an ugly if statement below. $acceptable_totals = array(1, 2, 3, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 72, 96, 120); foreach($acceptable_totals as $total_check) { if ( $total_check == $total_quantity ) { $display_notice = 0; } } foreach ( $woocommerce->cart->cart_contents as $product ) { if ( has_term( 'cuvees', 'product_cat', $product['product_id'] ) ) { if( $display_notice == 1 && $i == 0 ) { // display our error message wc_add_notice( sprintf( '<h5 style="letter-spacing:0.5px;color:white;text-align:center;">/!\&nbsp; une commande de %d bouteilles n&#39;est pas possible&nbsp;! &nbsp; /!\ </h5><br /> <br /><p style="text-align:center;"> l&#39;envoi n&#39;est possible que pour 1 | 2 | 3 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 72 | 96 | 120 et plus bouteilles.</p>', $total_quantity), 'error' ); } $i++; } } } } 編集 - 表示通知ロジックの小さな間違い。edit2 - 現在の製品数をエラーメッセージで返すようにコードを更新しました。