$_SESSION[‘usces_singleitem’][‘quant’]

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になることがあるのだろうか。


コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です