if ( ! empty( $mes ) ) {
$_SESSION['usces_singleitem']['itemOption'] = isset( $_POST['itemOption'] ) ? $_POST['itemOption'] : array();
$_SESSION['usces_singleitem']['quant'] = isset( $_POST['quant'] ) ? (int) $_POST['quant'] : 1;
$_SESSION['usces_singleitem']['error_message'] = $mes;
}その名の通り(usces_singleitem)商品詳細ページで商品をカートに入れる際、エラーが起こった時に設定される値。そう目にすることはない。
エラーメッセージがあれば設定される。
isset( $_POST[‘quant’] ) なら、つまり、カートに遷移する場面(wc_cart_page.phpにPOST送信する場面)で$_POST[‘quant’]の値が設定される。
$_POST[‘quant’]がセットされていなければ1が設定される。
エラーが起こった時(カートに正しく送信できなかった時)だけ設定される値なので、遷移先のwc_cart_page.phpで目にすることはない。
template_func.php > usces_the_itemQuant()関数のカスタマイズで、複数SKUの数量入力input欄を1つの「カートに入れる」ボタンで処理させる場合は注意が必要。。
$_POST[‘quant’]がセットされていなければ、1ではなく0に設定する必要がある。数量のデフォルト値を0に設定するわけである
$value = isset( $_SESSION['usces_singleitem']['quant'][ $post_id ][ $sku ] ) ? $_SESSION['usces_singleitem']['quant'][ $post_id ][ $sku ] : 1;isset( $_SESSION[‘usces_singleitem’][‘quant’][ $post_id ][ $sku ] )がtrueになることは絶対ない。Welcartプラグイン内部で$_SESSION[‘usces_singleitem’][‘quant’]を設定している場面は最初のコードで記したincart_check()内しかないから。
だから値は必ず1になる。なぜこんなコードになっているのだろう? 拡張プラグイン等でisset( $_SESSION[‘usces_singleitem’][‘quant’][ $post_id ][ $sku ] )がtrueになることがあるのだろうか。
コメントを残す