返信先: 【解決済】WCEX Yamato Numberへのカスタマイズが効かなくなった
フォーラム › 拡張プラグイン › 【解決済】WCEX Yamato Numberへのカスタマイズが効かなくなった › 返信先: 【解決済】WCEX Yamato Numberへのカスタマイズが効かなくなった
2024年7月5日 3:36 PM
#102175
参加者
大変恐れ入りますが自己解決しました。
YamatoNumber.class.php内の make_individual_cart( $cart_org )をカスタマイズしており、本番環境のみ、そのコードに誤りがありました。
テスト環境
public function make_individual_cart( $cart_org ) {
global $usces;
$opt_shipping_charges = $usces->options['shipping_charge'];//送料設定の配列を取得
$individual_cart = array();
$normal_cart = array();
$reizou_cart = array();
$reitou_cart = array();
foreach ( $cart_org as $org ) {
$is_individual = false;
$post_id = (int) $org['post_id'];
$quantity = (int) $org['quantity'];
$product = wel_get_product( $post_id );
$is_individual = $product['itemIndividualSCharge'];
if ( $is_individual ) {
$org['quantity'] = 1;
for ( $i = 0; $i < $quantity; $i++ ) {
$individual_cart[] = array( $org );
}
} else {
$normal_cart[] = $org;
}
}
if ( ! empty( $normal_cart ) ) {
foreach ( $normal_cart as $org){
$post_id = (int) $org['post_id'];
$product = wel_get_product( $post_id );
$item_shipping_charge_id = $product['itemShippingCharge'];
foreach($opt_shipping_charges as $opt_shipping_charge) {
if($item_shipping_charge_id == $opt_shipping_charge['id']) {
switch ( $opt_shipping_charge['name']){
case '宅急便コンパクト(常温)':
$reizou_cart[] = $org;
break;
case 'クール便':
$reizou_cart[] = $org;
break;
case '宅急便(常温)':
$reizou_cart[] = $org;
break;
case 'クール便(冷凍)';
$reitou_cart[] = $org;
break;
default:
}
break;
}
}
}
if ( ! empty( $reizou_cart ) ) {
$individual_cart[] = $reizou_cart;
}
if ( ! empty( $reitou_cart ) ) {
$individual_cart[] = $reitou_cart;
}
}
return $individual_cart;
}
本番環境
public function make_individual_cart( $cart_org ) {
global $usces;
$opt_shipping_charges = $usces->options['shipping_charge'];//送料設定の配列を取得
$individual_cart = array();
$normal_cart = array();
foreach ( $cart_org as $org ) {
$is_individual = false;
$post_id = (int) $org['post_id'];
$quantity = (int) $org['quantity'];
$product = wel_get_product( $post_id );
$is_individual = $product['itemIndividualSCharge'];
if ( $is_individual ) {
$org['quantity'] = 1;
for ( $i = 0; $i < $quantity; $i++ ) {
$individual_cart[] = array( $org );
}
} else {
$normal_cart[] = $org;
}
}
if ( ! empty( $normal_cart ) ) {
foreach ( $normal_cart as $org){
$post_id = (int) $org['post_id'];
$product = wel_get_product( $post_id );
$item_shipping_charge_id = $product['itemShippingCharge'];
foreach($opt_shipping_charges as $opt_shipping_charge) {
if($item_shipping_charge_id == $opt_shipping_charge['id']) {
switch ( $opt_shipping_charge['name']){
case '宅急便コンパクト(常温)':
$reizou_cart = array($org);
break;
case 'クール便':
$reizou_cart = array($org);
break;
case '宅急便(常温)':
$reizou_cart = array($org);
break;
case 'クール便(冷凍)';
$reitou_cart = array($org);
break;
default:
}
break;
}
}
}
if ( ! empty( $reizou_cart ) ) {
$individual_cart[] = $reizou_cart;
}
if ( ! empty( $reitou_cart ) ) {
$individual_cart[] = $reitou_cart;
}
}
return $individual_cart;
}
当店では【常温】【冷蔵】【冷凍】の三温度帯の商品を扱っており、常温と冷蔵は同梱できるのですが、冷凍とその他の温度帯は同梱できず、伝票を2枚出力する必要があり、このようにカスタマイズしています。
プラグインのコードを直接編集するのは避けるべきと重々承知しているのですが、ここにフィルターフックが無かったので…
お騒がせして大変申し訳ありませんでした。
誠にありがとうございました。
PAGE TOP