クリックポスト専用品と他の商品は同時に購入できないようにする

クリックポスト専用品は、他の商品と一緒に送ることができないのでチェックを追加する。

jQueryを使う。

クリックポスト専用品に — というsku を設定して他の商品と区別する。

sku’–‘ が、カートにあり、かつ、他にも商品がある場合にアラートを表示させる。

usceshop.class.phpのshop_foot()がカートのチェックを行っているが、適当な場所にフックがない。

最後の部分にusces_filter_shop_foot_jsがあるのそれを使う。

ob_start(); でバッファーに溜めこまれた内容を書き出して、それを編集して使う。

add_filter( ‘usces_filter_shop_foot_js’, ‘my_filter_shop_foot_js’);
function my_filter_shop_foot_js() {
$A = <<<‘EOJ’
<script type=’text/javascript’>
(function($) {
uscesCart = {

途中省略

upCart : function () {

途中省略

var clickpost = 0; //変数追加

var ct = zaikoob.length;
for(var i=0; i< ct; i++){
post_id = postidob[i].value;
sku = skuob[i].value;

if(sku == ‘–‘){ clickpost = 1;}  //  — というskuがあったら、フラグを立てる。

itemRestriction = $(“input[name=’itemRestriction\[” + i + “\]’]”).val();

途中省略
var items = skuob.length; //購入品目の種類の数を得る。
if(clickpost == 1 && items >1) {
mes += ‘クリックポスト専用品は他の商品と同時に購入することはできません。\n ‘;
}
if( mes != ” ){
alert( mes );
return false;
}else{
return true;
}
},

途中省略 cartNext :も同様。

})(jQuery);
</script>
EOJ;
return $A;
}