| @@ -1,403 +1,325 @@ | ||
| 1 | -<?php | |
| 2 | -$sendout = usces_get_send_out_date(); | |
| 3 | - | |
| 4 | -if(isset($this)) | |
| 5 | - $usces = &$this; | |
| 6 | - | |
| 7 | -$html = ' | |
| 8 | -<script type="text/javascript"> | |
| 9 | - //1桁の数字を0埋めで2桁にする | |
| 10 | - var toDoubleDigits = function(num) { | |
| 11 | - num += ""; | |
| 12 | - if(num.length === 1) num = "0".concat(num); | |
| 13 | - return num; | |
| 14 | - }; | |
| 15 | - var selected_delivery_method = \'\'; | |
| 16 | - var selected_delivery_date = \'\'; | |
| 17 | - var selected_delivery_time = \'\'; | |
| 18 | - var add_shipping = new Array();//発送日目安 | |
| 19 | - | |
| 20 | - function addDate(year, month, day, add) { | |
| 21 | - var date = new Date(Number(year), (Number(month) - 1), Number(day)); | |
| 22 | - var baseSec = date.getTime(); | |
| 23 | - var addSec = Number(add) * 86400000; | |
| 24 | - var targetSec = baseSec + addSec; | |
| 25 | - date.setTime(targetSec); | |
| 26 | - | |
| 27 | - var yy = date.getFullYear() + ""; | |
| 28 | - var mm = toDoubleDigits(date.getMonth() + 1); | |
| 29 | - var dd = toDoubleDigits(date.getDate()); | |
| 30 | - | |
| 31 | - var newdate = new Array(); | |
| 32 | - newdate["year"] = yy; | |
| 33 | - newdate["month"] = mm; | |
| 34 | - newdate["day"] = dd; | |
| 35 | - return(newdate); | |
| 36 | - } | |
| 37 | - | |
| 38 | - jQuery(function($){'; | |
| 39 | - | |
| 40 | -//選択可能な配送方法 | |
| 41 | -$default_deli = array_values(apply_filters('usces_filter_get_available_delivery_method', $usces->get_available_delivery_method())); | |
| 42 | -if( !isset($usces_entries['order']['delivery_method']) || '' == $usces_entries['order']['delivery_method'] ){ | |
| 43 | - $selected_delivery_method = $default_deli[0]; | |
| 44 | -}else{ | |
| 45 | - $selected_delivery_method = $usces_entries['order']['delivery_method']; | |
| 46 | -} | |
| 47 | -$html .= ' | |
| 48 | - selected_delivery_method = \'' . $selected_delivery_method . '\';'; | |
| 49 | -if(isset($usces_entries['order']['delivery_date'])) { | |
| 50 | - $html .= ' | |
| 51 | - selected_delivery_date = \''.$usces_entries['order']['delivery_date'].'\';'; | |
| 52 | -} | |
| 53 | - | |
| 54 | -//カートに入っている商品の発送日目安 | |
| 55 | -$shipping = 0; | |
| 56 | -$cart = $usces->cart->get_cart(); | |
| 57 | -for($i = 0; $i < count($cart); $i++) { | |
| 58 | - $cart_row = $cart[$i]; | |
| 59 | - $post_id = $cart_row['post_id']; | |
| 60 | - $itemShipping = $usces->getItemShipping($post_id); | |
| 61 | - if($itemShipping == 0 or $itemShipping == 9) { | |
| 62 | - $shipping = 0; | |
| 63 | - break; | |
| 64 | - } | |
| 65 | - if($shipping < $itemShipping) $shipping = $itemShipping; | |
| 66 | -} | |
| 67 | -$html .= ' | |
| 68 | - var shipping = '.$shipping.';'; | |
| 69 | -//配送業務締時間 | |
| 70 | -$hour = (!empty($usces->options['delivery_time_limit']['hour'])) ? $usces->options['delivery_time_limit']['hour'] : '00'; | |
| 71 | -$min = (!empty($usces->options['delivery_time_limit']['min'])) ? $usces->options['delivery_time_limit']['min'] : '00'; | |
| 72 | -$html .= ' | |
| 73 | - var delivery_time_limit_hour = "'.$hour.'";'; | |
| 74 | -$html .= ' | |
| 75 | - var delivery_time_limit_min = "'.$min.'";'; | |
| 76 | -//最短宅配時間帯 | |
| 77 | -$html .= ' | |
| 78 | - var shortest_delivery_time = '.(int)$usces->options['shortest_delivery_time'].';'; | |
| 79 | -//配送希望日を何日後まで表示するか | |
| 80 | -$delivery_after_days = (!empty($usces->options['delivery_after_days'])) ? (int)$usces->options['delivery_after_days'] : 15; | |
| 81 | -$html .= ' | |
| 82 | - var delivery_after_days = '.$delivery_after_days.';'; | |
| 83 | -//配送先県(customer) | |
| 84 | -$html .= ' | |
| 85 | - var customer_pref = "'.esc_js($usces_entries['customer']['pref']).'";'; | |
| 86 | -//配送先県(customer/delivery) | |
| 87 | -$delivery_pref = (isset($usces_entries['delivery']['pref']) && !empty($usces_entries['delivery']['pref'])) ? $usces_entries['delivery']['pref'] : $usces_entries['customer']['pref']; | |
| 88 | -$html .= ' | |
| 89 | - var delivery_pref = "'.esc_js($delivery_pref).'";'; | |
| 90 | -$delivery_country = (isset($usces_entries['delivery']['country']) && !empty($usces_entries['delivery']['country'])) ? $usces_entries['delivery']['country'] : $usces_entries['customer']['country']; | |
| 91 | -$html .= ' | |
| 92 | - var delivery_country = "'.esc_js($delivery_country).'";'; | |
| 93 | -//選択可能な配送方法に設定されている配達日数 | |
| 94 | -$html_days = 'var delivery_days = [];'; | |
| 95 | -foreach((array)$default_deli as $id) { | |
| 96 | - $index = $usces->get_delivery_method_index($id); | |
| 97 | - if(0 <= $index) { | |
| 98 | - $html_days .= 'delivery_days['.$id.'] = [];'; | |
| 99 | - $html_days .= 'delivery_days['.$id.'].push("'.$usces->options['delivery_method'][$index]['days'].'");'; | |
| 100 | - } | |
| 101 | -} | |
| 102 | -//配達日数に設定されている県毎の日数 | |
| 103 | -$target_market = ( isset($usces->options['system']['target_market']) && !empty($usces->options['system']['target_market']) ) ? $usces->options['system']['target_market'] : usces_get_local_target_market(); | |
| 104 | -foreach((array)$target_market as $tm) { | |
| 105 | - $prefs[$tm] = get_usces_states($tm); | |
| 106 | - array_shift($prefs[$tm]); | |
| 107 | -} | |
| 108 | -$delivery_days = $usces->options['delivery_days']; | |
| 109 | -$html_days .= 'var delivery_days_value = [];'; | |
| 110 | -foreach((array)$default_deli as $key => $id) { | |
| 111 | - $index = $usces->get_delivery_method_index($id); | |
| 112 | - if(0 <= $index) { | |
| 113 | - $days = (int)$usces->options['delivery_method'][$index]['days']; | |
| 114 | - if(0 <= $days) { | |
| 115 | - for($i = 0; $i < count((array)$delivery_days); $i++) { | |
| 116 | - if((int)$delivery_days[$i]['id'] == $days) { | |
| 117 | - $html_days .= 'delivery_days_value['.$days.'] = [];'; | |
| 118 | - foreach( (array)$target_market as $tm ) { | |
| 119 | - $html_days .= 'delivery_days_value['.$days.']["'.$tm.'"] = [];'; | |
| 120 | - foreach( (array)$prefs[$tm] as $pref) { | |
| 121 | - $pref = esc_js($pref); | |
| 122 | - $html_days .= 'delivery_days_value['.$days.']["'.$tm.'"]["'.$pref.'"] = [];'; | |
| 123 | - if( isset($delivery_days[$i][$tm][$pref]) ) | |
| 124 | - $html_days .= 'delivery_days_value['.$days.']["'.$tm.'"]["'.$pref.'"].push("'.(int)$delivery_days[$i][$tm][$pref].'");'; | |
| 125 | - } | |
| 126 | - } | |
| 127 | - } | |
| 128 | - } | |
| 129 | - } | |
| 130 | - } | |
| 131 | -} | |
| 132 | -$html .= apply_filters('usces_filter_delivery_days_value', $html_days, $cart, $default_deli, $prefs); | |
| 133 | -$business_days = 0; | |
| 134 | -list($yy, $mm, $dd) = getToday(); | |
| 135 | -$business = (isset($usces->options['business_days'][$yy][$mm][$dd])) ? $usces->options['business_days'][$yy][$mm][$dd] : 1; | |
| 136 | -while($business != 1) { | |
| 137 | - $business_days++; | |
| 138 | - list($yy, $mm, $dd) = getNextDay($yy, $mm, $dd); | |
| 139 | - $business = $usces->options['business_days'][$yy][$mm][$dd]; | |
| 140 | -} | |
| 141 | -$html .= 'var business_days = '.$business_days.';'; | |
| 142 | - | |
| 143 | -$html .= 'selected_delivery_time = \'' . esc_js($usces_entries['order']['delivery_time']) . '\'; | |
| 144 | - var delivery_time = [];delivery_time[0] = [];'; | |
| 145 | - | |
| 146 | -foreach((array)$usces->options['delivery_method'] as $dmid => $dm){ | |
| 147 | - $lines = explode("\n", $dm['time']); | |
| 148 | - $html .= 'delivery_time[' . $dm['id'] . '] = [];'; | |
| 149 | - foreach((array)$lines as $line){ | |
| 150 | - if(trim($line) != ''){ | |
| 151 | - $html .= 'delivery_time[' . $dm['id'] . '].push("' . trim($line) . '");'; | |
| 152 | - } | |
| 153 | - } | |
| 154 | -} | |
| 155 | - | |
| 156 | -$payments_str = ''; | |
| 157 | -$payments_arr = array(); | |
| 158 | -$payments = usces_get_system_option( 'usces_payment_method', 'sort' ); | |
| 159 | -$payments = apply_filters( 'usces_filter_available_payment_method', $payments ); | |
| 160 | -foreach ( (array)$payments as $array ) { | |
| 161 | - switch( $array['settlement'] ){ | |
| 162 | - case 'acting_zeus_card': | |
| 163 | - $paymod_base = 'zeus'; | |
| 164 | - if( 'on' == $usces->options['acting_settings'][$paymod_base]['card_activate'] | |
| 165 | - && 'on' == $usces->options['acting_settings'][$paymod_base]['activate'] ){ | |
| 166 | - $payments_str .= "'" . $array['name'] . "': '" . $paymod_base . "', "; | |
| 167 | - $payments_arr[] = $paymod_base; | |
| 168 | - } | |
| 169 | - break; | |
| 170 | - case 'acting_zeus_conv': | |
| 171 | - $paymod_base = 'zeus'; | |
| 172 | - if( 'on' == $usces->options['acting_settings'][$paymod_base]['conv_activate'] | |
| 173 | - && 'on' == $usces->options['acting_settings'][$paymod_base]['activate'] ){ | |
| 174 | - $payments_str .= "'" . $array['name'] . "': '" . $paymod_base . "_conv', "; | |
| 175 | - $payments_arr[] = $paymod_base.'_conv'; | |
| 176 | - } | |
| 177 | - break; | |
| 178 | - case 'acting_remise_card': | |
| 179 | - $paymod_base = 'remise'; | |
| 180 | - if( 'on' == $usces->options['acting_settings'][$paymod_base]['card_activate'] | |
| 181 | - && 'on' == $usces->options['acting_settings'][$paymod_base]['howpay'] | |
| 182 | - && 'on' == $usces->options['acting_settings'][$paymod_base]['activate'] ){ | |
| 183 | - $payments_str .= "'" . $array['name'] . "': '" . $paymod_base . "', "; | |
| 184 | - $payments_arr[] = $paymod_base; | |
| 185 | - } | |
| 186 | - break; | |
| 187 | - } | |
| 188 | -} | |
| 189 | -$payments_str = rtrim($payments_str, ', '); | |
| 190 | - | |
| 191 | -$html .= " | |
| 192 | - var uscesPaymod = { " . $payments_str . " }; | |
| 193 | - | |
| 194 | - $(\"input[name='offer\\[payment_name\\]']\").click(function() {"; | |
| 195 | - | |
| 196 | -foreach($payments_arr as $pm ){ | |
| 197 | - $html .= " | |
| 198 | - $(\"#" . $pm . "\").css({\"display\": \"none\"});\n"; | |
| 199 | -} | |
| 200 | - | |
| 201 | -$cart_delivery_script = " | |
| 202 | - var chk_pay = $(\"input[name='offer\\[payment_name\\]']:checked\").val(); | |
| 203 | - if( uscesPaymod[chk_pay] != '' ){ | |
| 204 | - $(\"#\" + uscesPaymod[chk_pay]).css({\"display\": \"table\"}); | |
| 205 | - } | |
| 206 | - }); | |
| 207 | - | |
| 208 | - $('#delivery_method_select').change(function() { | |
| 209 | - orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 210 | - orderfunc.make_delivery_time(($('#delivery_method_select option:selected').val()-0)); | |
| 211 | - }); | |
| 212 | - | |
| 213 | - $('#delivery_flag1').click(function() { | |
| 214 | - if(customer_pref != delivery_pref) { | |
| 215 | - delivery_pref = customer_pref; | |
| 216 | - orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 217 | - } | |
| 218 | - }); | |
| 219 | - | |
| 220 | - $('#delivery_flag2').click(function() { | |
| 221 | - if($('#delivery_flag2').attr('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex) { | |
| 222 | - delivery_pref = $('#delivery_pref').val(); | |
| 223 | - orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 224 | - } | |
| 225 | - }); | |
| 226 | - | |
| 227 | - $('#delivery_pref').change(function() { | |
| 228 | - if($('#delivery_flag2').attr('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex) { | |
| 229 | - delivery_pref = $('#delivery_pref').val(); | |
| 230 | - orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 231 | - } | |
| 232 | - }); | |
| 233 | - orderfunc = { | |
| 234 | - make_delivery_date : function(selected) { | |
| 235 | - var option = ''; | |
| 236 | - var message = ''; | |
| 237 | - if(delivery_days[selected] != undefined && 0 <= delivery_days[selected]) { | |
| 238 | - switch(shipping) { | |
| 239 | - case 0://指定なし | |
| 240 | - case 9://商品入荷後 | |
| 241 | - break; | |
| 242 | - default: | |
| 243 | - var date = new Array(); | |
| 244 | - date['year'] = '" . $sendout['sendout_date']['year'] . "'; | |
| 245 | - date['month'] = '" . $sendout['sendout_date']['month'] . "'; | |
| 246 | - date['day'] = '" . $sendout['sendout_date']['day'] . "'; | |
| 247 | - //配達日数加算 | |
| 248 | - if(delivery_days_value[delivery_days[selected]] != undefined) { | |
| 249 | - if(delivery_days_value[delivery_days[selected]][delivery_country][delivery_pref] != undefined) { | |
| 250 | - date = addDate(date[\"year\"], date[\"month\"], date[\"day\"], delivery_days_value[delivery_days[selected]][delivery_country][delivery_pref]); | |
| 251 | - } | |
| 252 | - } | |
| 253 | - //最短配送時間帯メッセージ | |
| 254 | - var date_str = date[\"year\"]+\"-\"+date[\"month\"]+\"-\"+date[\"day\"]; | |
| 255 | - switch(shortest_delivery_time) { | |
| 256 | - case 0://指定しない 20110106ysk -> 20111128ysk DEL | |
| 257 | - //message = " . __("'最短 ' + date_str + ' からご指定いただけます。'", 'usces') . "; | |
| 258 | - break; | |
| 259 | - case 1://午前着可 | |
| 260 | - message = " . __("'最短 ' + date_str + ' の午前中からご指定いただけます。'", 'usces') . "; | |
| 261 | - break; | |
| 262 | - case 2://午前着不可 | |
| 263 | - message = " . __("'最短 ' + date_str + ' の午後からご指定いただけます。'", 'usces') . "; | |
| 264 | - break; | |
| 265 | - }"; | |
| 266 | -$delivery_after_days_script = " | |
| 267 | - option += '<option value=\"".__('No preference', 'usces')."\">".__('No preference', 'usces')."</option>'; | |
| 268 | - for(var i = 0; i < delivery_after_days; i++) { | |
| 269 | - date_str = date[\"year\"]+\"-\"+date[\"month\"]+\"-\"+date[\"day\"]; | |
| 270 | - if(date_str == selected_delivery_date) { | |
| 271 | - option += '<option value=\"' + date_str + '\" selected>' + date_str + '</option>'; | |
| 272 | - } else { | |
| 273 | - option += '<option value=\"' + date_str + '\">' + date_str + '</option>'; | |
| 274 | - } | |
| 275 | - date = addDate(date[\"year\"], date[\"month\"], date[\"day\"], 1); | |
| 276 | - }"; | |
| 277 | -$cart_delivery_script .= apply_filters( 'usces_delivery_after_days_script', $delivery_after_days_script ); | |
| 278 | -$cart_delivery_script .= " | |
| 279 | - break; | |
| 280 | - } | |
| 281 | - } | |
| 282 | - if(option == '') { | |
| 283 | - option = '<option value=\"".__('There is not a choice.', 'usces')."\">' + '".__('There is not a choice.', 'usces')."' + '</option>'; | |
| 284 | - } | |
| 285 | - $(\"#delivery_date_select\").html(option); | |
| 286 | - $(\"#delivery_time_limit_message\").html(message); | |
| 287 | - }, | |
| 288 | - make_delivery_time : function(selected) { | |
| 289 | - var option = ''; | |
| 290 | - if(delivery_time[selected] != undefined){ | |
| 291 | - for(var i=0; i<delivery_time[selected].length; i++){ | |
| 292 | - if( delivery_time[selected][i] == selected_delivery_time ) { | |
| 293 | - option += '<option value=\"' + delivery_time[selected][i] + '\" selected=\"selected\">' + delivery_time[selected][i] + '</option>'; | |
| 294 | - }else{ | |
| 295 | - option += '<option value=\"' + delivery_time[selected][i] + '\">' + delivery_time[selected][i] + '</option>'; | |
| 296 | - } | |
| 297 | - } | |
| 298 | - } | |
| 299 | - if(option == ''){ | |
| 300 | - option = '<option value=\"" . __('There is not a choice.', 'usces') . "\">' + '" . __('There is not a choice.', 'usces') . "' + '</option>'; | |
| 301 | - } | |
| 302 | - $(\"#delivery_time_select\").html(option); | |
| 303 | - } | |
| 304 | - }; | |
| 305 | - "; | |
| 306 | - | |
| 307 | -if($usces_entries['delivery']['delivery_flag'] == 0) { | |
| 308 | - $cart_delivery_script .= " | |
| 309 | - $(\"#delivery_table\").css({display: \"none\"});\n"; | |
| 310 | -} | |
| 311 | - | |
| 312 | -$cart_delivery_script .= " | |
| 313 | - orderfunc.make_delivery_date(selected_delivery_method);\n"; | |
| 314 | - | |
| 315 | -$cart_delivery_script .= " | |
| 316 | - orderfunc.make_delivery_time(selected_delivery_method);\n"; | |
| 317 | - | |
| 318 | -$html .= apply_filters( 'usces_filter_cart_delivery_script', $cart_delivery_script, $usces_entries, $sendout ); | |
| 319 | - | |
| 320 | -foreach($payments_arr as $pn => $pm ){ | |
| 321 | - $html .= " | |
| 322 | - $(\"#" . $pm . "\").css({\"display\": \"none\"});\n"; | |
| 323 | - | |
| 324 | - switch( $pm ){ | |
| 325 | - case 'zeus': | |
| 326 | - if('on' == $usces->options['acting_settings'][$pm]['howpay']){ | |
| 327 | - $html .= " | |
| 328 | - $(\"input[name='offer\[howpay\]']\").change(function() { | |
| 329 | - if( '' != $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 330 | - $(\"#div_" . $pm . "\").css({\"display\": \"\"}); | |
| 331 | - } | |
| 332 | - if( '1' == $(\"input[name='offer\[howpay\]']:checked\").val() ){ | |
| 333 | - $(\"#cbrand_" . $pm . "\").css({\"display\": \"none\"}); | |
| 334 | - $(\"#div_" . $pm . "\").css({\"display\": \"none\"}); | |
| 335 | - }else{ | |
| 336 | - $(\"#cbrand_" . $pm . "\").css({\"display\": \"\"}); | |
| 337 | - } | |
| 338 | - }); | |
| 339 | - | |
| 340 | - $(\"select[name='offer\[cbrand\]']\").change(function() { | |
| 341 | - $(\"#div_" . $pm . "\").css({\"display\": \"\"}); | |
| 342 | - if( '1' == $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 343 | - $(\"#brand1\").css({\"display\": \"\"}); | |
| 344 | - $(\"#brand2\").css({\"display\": \"none\"}); | |
| 345 | - $(\"#brand3\").css({\"display\": \"none\"}); | |
| 346 | - }else if( '2' == $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 347 | - $(\"#brand1\").css({\"display\": \"none\"}); | |
| 348 | - $(\"#brand2\").css({\"display\": \"\"}); | |
| 349 | - $(\"#brand3\").css({\"display\": \"none\"}); | |
| 350 | - }else if( '3' == $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 351 | - $(\"#brand1\").css({\"display\": \"none\"}); | |
| 352 | - $(\"#brand2\").css({\"display\": \"none\"}); | |
| 353 | - $(\"#brand3\").css({\"display\": \"\"}); | |
| 354 | - }else{ | |
| 355 | - $(\"#brand1\").css({\"display\": \"none\"}); | |
| 356 | - $(\"#brand2\").css({\"display\": \"none\"}); | |
| 357 | - $(\"#brand3\").css({\"display\": \"none\"}); | |
| 358 | - } | |
| 359 | - }); | |
| 360 | - | |
| 361 | - if( '1' == $(\"input[name='offer\[howpay\]']:checked\").val() ){ | |
| 362 | - $(\"#cbrand_" . $pm . "\").css({\"display\": \"none\"}); | |
| 363 | - $(\"#div_" . $pm . "\").css({\"display\": \"none\"}); | |
| 364 | - }else{ | |
| 365 | - $(\"#cbrand_" . $pm . "\").css({\"display\": \"\"}); | |
| 366 | - $(\"#div_" . $pm . "\").css({\"display\": \"\"}); | |
| 367 | - } | |
| 368 | - | |
| 369 | - if( '1' == $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 370 | - $(\"#brand1\").css({\"display\": \"\"}); | |
| 371 | - $(\"#brand2\").css({\"display\": \"none\"}); | |
| 372 | - $(\"#brand3\").css({\"display\": \"none\"}); | |
| 373 | - }else if( '2' == $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 374 | - $(\"#brand1\").css({\"display\": \"none\"}); | |
| 375 | - $(\"#brand2\").css({\"display\": \"\"}); | |
| 376 | - $(\"#brand3\").css({\"display\": \"none\"}); | |
| 377 | - }else if( '3' == $(\"select[name='offer\[cbrand\]'] option:selected\").val() ){ | |
| 378 | - $(\"#brand1\").css({\"display\": \"none\"}); | |
| 379 | - $(\"#brand2\").css({\"display\": \"none\"}); | |
| 380 | - $(\"#brand3\").css({\"display\": \"\"}); | |
| 381 | - }else{ | |
| 382 | - $(\"#brand1\").css({\"display\": \"none\"}); | |
| 383 | - $(\"#brand2\").css({\"display\": \"none\"}); | |
| 384 | - $(\"#brand3\").css({\"display\": \"none\"}); | |
| 385 | - } | |
| 386 | - | |
| 387 | - \n"; | |
| 388 | - } | |
| 389 | - break; | |
| 390 | - } | |
| 391 | -} | |
| 392 | - | |
| 393 | -$html .= " | |
| 394 | - ch_pay = $(\"input[name='offer\\[payment_name\\]']:checked\").val(); | |
| 395 | - if( uscesPaymod[ch_pay] != '' ){ | |
| 396 | - $(\"#\" + uscesPaymod[ch_pay]).css({\"display\": \"\"}); | |
| 397 | - }"; | |
| 398 | - | |
| 399 | -$html .= " | |
| 400 | - }); | |
| 401 | -</script> | |
| 402 | -"; | |
| 403 | -?> | |
| 1 | +<?php | |
| 2 | +/** | |
| 3 | + * Delivery and Payment Method Script. | |
| 4 | + * | |
| 5 | + * @package Welcart | |
| 6 | + */ | |
| 7 | + | |
| 8 | +$sendout = usces_get_send_out_date(); | |
| 9 | +$no_preference = apply_filters( 'usces_filter_label_delivery_date_no_preference', __( 'No preference', 'usces' ) ); | |
| 10 | +$not_a_choice = apply_filters( 'usces_filter_label_delivery_date_not_a_choice', __( 'There is not a choice.', 'usces' ) ); | |
| 11 | + | |
| 12 | +if ( isset( $this ) ) { | |
| 13 | + $usces = &$this; | |
| 14 | +} | |
| 15 | + | |
| 16 | +$html = ''; | |
| 17 | + | |
| 18 | +/* Delivery Script */ | |
| 19 | +if ( wel_have_shipped() ) { | |
| 20 | + $html = ' | |
| 21 | +<script type="text/javascript"> | |
| 22 | +var toDoubleDigits = function(num) { | |
| 23 | + num += ""; | |
| 24 | + if( num.length === 1 ) num = "0".concat(num); | |
| 25 | + return num; | |
| 26 | +}; | |
| 27 | +var selected_delivery_method = \'\'; | |
| 28 | +var selected_delivery_date = \'\'; | |
| 29 | +var selected_delivery_time = \'\'; | |
| 30 | +var add_shipping = new Array(); | |
| 31 | + | |
| 32 | +function addDate(year, month, day, add) { | |
| 33 | + var date = new Date( Number(year), (Number(month)-1), Number(day) ); | |
| 34 | + var baseSec = date.getTime(); | |
| 35 | + var addSec = Number(add)*86400000; | |
| 36 | + var targetSec = baseSec+addSec; | |
| 37 | + date.setTime(targetSec); | |
| 38 | + | |
| 39 | + var yy = date.getFullYear()+""; | |
| 40 | + var mm = toDoubleDigits(date.getMonth()+1); | |
| 41 | + var dd = toDoubleDigits(date.getDate()); | |
| 42 | + | |
| 43 | + var newdate = new Array(); | |
| 44 | + newdate["year"] = yy; | |
| 45 | + newdate["month"] = mm; | |
| 46 | + newdate["day"] = dd; | |
| 47 | + return(newdate); | |
| 48 | +} | |
| 49 | + | |
| 50 | +jQuery( function($) {'; | |
| 51 | + | |
| 52 | + /* Selectable delivery method(選択可能な配送方法) */ | |
| 53 | + $default_deli = array_values( apply_filters( 'usces_filter_get_available_delivery_method', $usces->get_available_delivery_method() ) ); | |
| 54 | + | |
| 55 | + if ( ! isset( $usces_entries['order']['delivery_method'] ) || '' == $usces_entries['order']['delivery_method'] || ! in_array( $usces_entries['order']['delivery_method'], $default_deli, true ) ) { | |
| 56 | + $selected_delivery_method = $default_deli[0]; | |
| 57 | + } else { | |
| 58 | + $selected_delivery_method = $usces_entries['order']['delivery_method']; | |
| 59 | + } | |
| 60 | + $html .= ' | |
| 61 | + selected_delivery_method = \'' . $selected_delivery_method . '\';'; | |
| 62 | + if ( isset( $usces_entries['order']['delivery_date'] ) ) { | |
| 63 | + $html .= ' | |
| 64 | + selected_delivery_date = \'' . $usces_entries['order']['delivery_date'] . '\';'; | |
| 65 | + } | |
| 66 | + | |
| 67 | + /* ItemShipping of goods that are in the cart.(カートに入っている商品の発送日目安) */ | |
| 68 | + $shipping = 0; | |
| 69 | + $cart = $usces->cart->get_cart(); | |
| 70 | + $cart_count = ( $cart && is_array( $cart ) ) ? count( $cart ) : 0; | |
| 71 | + $shipping_rule_ex = apply_filters( 'usces_filter_item_shipping_rule_ex', 9 ); | |
| 72 | + for ( $i = 0; $i < $cart_count; $i++ ) { | |
| 73 | + $cart_row = $cart[ $i ]; | |
| 74 | + $item_shipping = $usces->getItemShipping( $cart_row['post_id'] ); | |
| 75 | + if ( 0 === (int) $item_shipping || $shipping_rule_ex === (int) $item_shipping ) { | |
| 76 | + $shipping = 0; | |
| 77 | + break; | |
| 78 | + } | |
| 79 | + if ( $shipping < $item_shipping ) { | |
| 80 | + $shipping = $item_shipping; | |
| 81 | + } | |
| 82 | + } | |
| 83 | + $html .= "\n\t" . 'var shipping = ' . (string) $shipping . ';'; | |
| 84 | + /* 配送業務締時間 */ | |
| 85 | + $hour = ( ! empty( $usces->options['delivery_time_limit']['hour'] ) ) ? $usces->options['delivery_time_limit']['hour'] : '00'; | |
| 86 | + $min = ( ! empty( $usces->options['delivery_time_limit']['min'] ) ) ? $usces->options['delivery_time_limit']['min'] : '00'; | |
| 87 | + $html .= "\n\t" . 'var delivery_time_limit_hour = "' . $hour . '";'; | |
| 88 | + $html .= "\n\t" . 'var delivery_time_limit_min = "' . $min . '";'; | |
| 89 | + /* 最短宅配時間帯 */ | |
| 90 | + $html .= "\n\t" . 'var shortest_delivery_time = ' . (int) $usces->options['shortest_delivery_time'] . ';'; | |
| 91 | + /* 配送希望日を何日後まで表示するか */ | |
| 92 | + $delivery_after_days = ( ! empty( $usces->options['delivery_after_days'] ) ) ? (int) $usces->options['delivery_after_days'] : 15; | |
| 93 | + $html .= "\n\t" . 'var delivery_after_days = ' . $delivery_after_days . ';'; | |
| 94 | + /* 配送先県(customer) */ | |
| 95 | + $html .= "\n\t" . 'var customer_pref = "' . esc_js( $usces_entries['customer']['pref'] ) . '";'; | |
| 96 | + /* 配送先県(customer/delivery) */ | |
| 97 | + $delivery_pref = ( isset( $usces_entries['delivery']['pref'] ) && ! empty( $usces_entries['delivery']['pref'] ) ) ? $usces_entries['delivery']['pref'] : $usces_entries['customer']['pref']; | |
| 98 | + $html .= "\n\t" . 'var delivery_pref = "' . esc_js( $delivery_pref ) . '";'; | |
| 99 | + $delivery_country = ( isset( $usces_entries['delivery']['country'] ) && ! empty( $usces_entries['delivery']['country'] ) ) ? $usces_entries['delivery']['country'] : $usces_entries['customer']['country']; | |
| 100 | + $html .= "\n\t" . 'var delivery_country = "' . esc_js( $delivery_country ) . '";'; | |
| 101 | + /* 選択可能な配送方法に設定されている配達日数 */ | |
| 102 | + $html_days = "\n\t" . 'var delivery_days = [];'; | |
| 103 | + foreach ( (array) $default_deli as $deli_id ) { | |
| 104 | + $index = $usces->get_delivery_method_index( $deli_id ); | |
| 105 | + if ( 0 <= $index ) { | |
| 106 | + $html_days .= "\n\t" . 'delivery_days[' . $deli_id . '] = [];'; | |
| 107 | + $html_days .= "\n\t" . 'delivery_days[' . $deli_id . '].push("' . $usces->options['delivery_method'][ $index ]['days'] . '");'; | |
| 108 | + } | |
| 109 | + } | |
| 110 | + /* 配達日数に設定されている県毎の日数 */ | |
| 111 | + $target_market = ( isset( $usces->options['system']['target_market'] ) && ! empty( $usces->options['system']['target_market'] ) ) ? $usces->options['system']['target_market'] : usces_get_local_target_market(); | |
| 112 | + foreach ( (array) $target_market as $tm ) { | |
| 113 | + $prefs[ $tm ] = get_usces_states( $tm ); | |
| 114 | + array_shift( $prefs[ $tm ] ); | |
| 115 | + } | |
| 116 | + $delivery_days = $usces->options['delivery_days']; | |
| 117 | + $delivery_days_count = ( $delivery_days && is_array( $delivery_days ) ) ? count( $delivery_days ) : 0; | |
| 118 | + $html_days .= "\n\t" . 'var delivery_days_value = [];'; | |
| 119 | + foreach ( (array) $default_deli as $key => $deli_id ) { | |
| 120 | + $index = $usces->get_delivery_method_index( $deli_id ); | |
| 121 | + if ( 0 <= $index ) { | |
| 122 | + $days = (int) $usces->options['delivery_method'][ $index ]['days']; | |
| 123 | + if ( 0 <= $days ) { | |
| 124 | + for ( $i = 0; $i < $delivery_days_count; $i++ ) { | |
| 125 | + if ( (int) $delivery_days[ $i ]['id'] == $days ) { | |
| 126 | + $html_days .= "\n\t" . 'delivery_days_value[' . $days . '] = [];'; | |
| 127 | + foreach ( (array) $target_market as $tm ) { | |
| 128 | + $html_days .= "\n\t" . 'delivery_days_value[' . $days . ']["' . $tm . '"] = [];'; | |
| 129 | + foreach ( (array) $prefs[ $tm ] as $pref ) { | |
| 130 | + $pref = esc_js( $pref ); | |
| 131 | + $html_days .= "\n\t" . 'delivery_days_value[' . $days . ']["' . $tm . '"]["' . $pref . '"] = [];'; | |
| 132 | + if ( isset( $delivery_days[ $i ][ $tm ][ $pref ] ) ) { | |
| 133 | + $html_days .= "\n\t" . 'delivery_days_value[' . $days . ']["' . $tm . '"]["' . $pref . '"].push("' . (int) $delivery_days[ $i ][ $tm ][ $pref ] . '");'; | |
| 134 | + } | |
| 135 | + } | |
| 136 | + } | |
| 137 | + } | |
| 138 | + } | |
| 139 | + } | |
| 140 | + } | |
| 141 | + } | |
| 142 | + $html .= apply_filters( 'usces_filter_delivery_days_value', $html_days, $cart, $default_deli, $prefs ); | |
| 143 | + $business_days = 0; | |
| 144 | + list( $yy, $mm, $dd ) = getToday(); | |
| 145 | + $business = ( isset( $usces->options['business_days'][ $yy ][ $mm ][ $dd ] ) ) ? $usces->options['business_days'][ $yy ][ $mm ][ $dd ] : 1; | |
| 146 | + while ( 1 !== (int) $business ) { | |
| 147 | + $business_days++; | |
| 148 | + list( $yy, $mm, $dd ) = getNextDay( $yy, $mm, $dd ); | |
| 149 | + $business = $usces->options['business_days'][ $yy ][ $mm ][ $dd ]; | |
| 150 | + } | |
| 151 | + $html .= "\n\t" . 'var business_days = ' . $business_days . ';'; | |
| 152 | + | |
| 153 | + $html .= "\n\t" . 'selected_delivery_time = \'' . esc_js( $usces_entries['order']['delivery_time'] ) . '\';'; | |
| 154 | + | |
| 155 | + $html_time = "\n\t" . 'var delivery_time = [];delivery_time[0] = [];'; | |
| 156 | + foreach ( (array) $usces->options['delivery_method'] as $dmid => $dm ) { | |
| 157 | + $dm['time'] = usces_change_line_break( $dm['time'] ); | |
| 158 | + $lines = explode( "\n", $dm['time'] ); | |
| 159 | + $html_time .= "\n\t" . 'delivery_time[' . $dm['id'] . '] = [];'; | |
| 160 | + foreach ( (array) $lines as $line ) { | |
| 161 | + if ( '' !== trim( $line ) ) { | |
| 162 | + $html_time .= "\n\t" . 'delivery_time[' . $dm['id'] . '].push("' . trim( $line ) . '");'; | |
| 163 | + } | |
| 164 | + } | |
| 165 | + } | |
| 166 | + $html .= apply_filters( 'usces_filter_delivery_time_value', $html_time, $cart, $default_deli, $prefs ); | |
| 167 | + | |
| 168 | + $cart_delivery_script = "\n | |
| 169 | + $(document).on( 'change', '#delivery_method_select', function() { | |
| 170 | + orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 171 | + orderfunc.make_delivery_time(($('#delivery_method_select option:selected').val()-0)); | |
| 172 | + }); | |
| 173 | + $(document).on( 'click', '#delivery_flag1', function() { | |
| 174 | + if( customer_pref != delivery_pref ) { | |
| 175 | + delivery_pref = customer_pref; | |
| 176 | + orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 177 | + } | |
| 178 | + }); | |
| 179 | + $(document).on( 'click', '#delivery_flag2', function() { | |
| 180 | + if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) { | |
| 181 | + delivery_pref = $('#delivery_pref').val(); | |
| 182 | + orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 183 | + } | |
| 184 | + }); | |
| 185 | + $(document).on( 'change', '#delivery_pref', function() { | |
| 186 | + if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) { | |
| 187 | + delivery_pref = $('#delivery_pref').val(); | |
| 188 | + orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 189 | + } | |
| 190 | + }); | |
| 191 | + $(document).on( 'blur', '#search_zipcode', function() { | |
| 192 | + if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) { | |
| 193 | + $('#search_zipcode_change').val($('#zipcode').val()); | |
| 194 | + delivery_pref = $('#delivery_pref').val(); | |
| 195 | + orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0)); | |
| 196 | + } | |
| 197 | + }); | |
| 198 | + | |
| 199 | + orderfunc = { | |
| 200 | + make_delivery_date : function(selected) { | |
| 201 | + var option = ''; | |
| 202 | + var message = ''; | |
| 203 | + if( delivery_days[selected] != undefined && 0 <= delivery_days[selected] ) { | |
| 204 | + switch(shipping) { | |
| 205 | + case 0: | |
| 206 | + case 9: | |
| 207 | + break; | |
| 208 | + default: | |
| 209 | + var date = new Array(); | |
| 210 | + date['year'] = '" . $sendout['sendout_date']['year'] . "'; | |
| 211 | + date['month'] = '" . $sendout['sendout_date']['month'] . "'; | |
| 212 | + date['day'] = '" . $sendout['sendout_date']['day'] . "'; | |
| 213 | + if( delivery_days_value[delivery_days[selected]] != undefined ) { | |
| 214 | + if( delivery_days_value[delivery_days[selected]][delivery_country][delivery_pref] != undefined ) { | |
| 215 | + date = addDate(date[\"year\"], date[\"month\"], date[\"day\"], delivery_days_value[delivery_days[selected]][delivery_country][delivery_pref] ); | |
| 216 | + } | |
| 217 | + } | |
| 218 | + var date_str = date[\"year\"]+\"-\"+date[\"month\"]+\"-\"+date[\"day\"]; | |
| 219 | + switch(shortest_delivery_time) { | |
| 220 | + case 0: | |
| 221 | + //message = '最短 '+date_str+' からご指定いただけます。'; | |
| 222 | + break; | |
| 223 | + case 1: | |
| 224 | + message = '最短 '+date_str+' の午前中からご指定いただけます。'; | |
| 225 | + break; | |
| 226 | + case 2: | |
| 227 | + message = '最短 '+date_str+' の午後からご指定いただけます。'; | |
| 228 | + break; | |
| 229 | + }"; | |
| 230 | + $delivery_after_days_script = " | |
| 231 | + option += '<option value=\"" . $no_preference . "\">" . $no_preference . "</option>'; | |
| 232 | + for( var i = 0; i < delivery_after_days; i++ ) { | |
| 233 | + date_str = date[\"year\"]+\"-\"+date[\"month\"]+\"-\"+date[\"day\"]; | |
| 234 | + if( date_str == selected_delivery_date ) { | |
| 235 | + option += '<option value=\"'+date_str+'\" selected>'+date_str+'</option>'; | |
| 236 | + } else { | |
| 237 | + option += '<option value=\"'+date_str+'\">'+date_str+'</option>'; | |
| 238 | + } | |
| 239 | + date = addDate( date[\"year\"], date[\"month\"], date[\"day\"], 1 ); | |
| 240 | + }"; | |
| 241 | + $cart_delivery_script .= apply_filters( 'usces_delivery_after_days_script', $delivery_after_days_script ); | |
| 242 | + $cart_delivery_script .= " | |
| 243 | + break; | |
| 244 | + } | |
| 245 | + } | |
| 246 | + if( option == '' ) { | |
| 247 | + option = '<option value=\"" . $not_a_choice . "\">'+'" . $not_a_choice . "'+'</option>'; | |
| 248 | + } | |
| 249 | + $(\"#delivery_date_select\").html(option); | |
| 250 | + $(\"#delivery_time_limit_message\").html(message); | |
| 251 | + }, | |
| 252 | + | |
| 253 | + make_delivery_time : function(selected) { | |
| 254 | + var option = ''; | |
| 255 | + if( delivery_time[selected] != undefined ) { | |
| 256 | + for( var i = 0; i < delivery_time[selected].length; i++ ) { | |
| 257 | + if( delivery_time[selected][i] == selected_delivery_time ) { | |
| 258 | + option += '<option value=\"'+delivery_time[selected][i]+'\" selected=\"selected\">'+delivery_time[selected][i]+'</option>'; | |
| 259 | + } else { | |
| 260 | + option += '<option value=\"'+delivery_time[selected][i]+'\">'+delivery_time[selected][i]+'</option>'; | |
| 261 | + } | |
| 262 | + } | |
| 263 | + } | |
| 264 | + if( option == '' ) { | |
| 265 | + option = '<option value=\"" . __( 'There is not a choice.', 'usces' ) . "\">'+'" . __( 'There is not a choice.', 'usces' ) . "'+'</option>'; | |
| 266 | + } | |
| 267 | + $(\"#delivery_time_select\").html( option ); | |
| 268 | + } | |
| 269 | + };"; | |
| 270 | + | |
| 271 | + if ( 1 !== (int) $usces_entries['delivery']['delivery_flag'] ) { | |
| 272 | + $cart_delivery_script .= "\n\t$(\"#delivery_table\").css({\"display\":\"none\"});"; | |
| 273 | + } | |
| 274 | + $cart_delivery_script .= "\n\t" . 'orderfunc.make_delivery_date(selected_delivery_method);'; | |
| 275 | + $cart_delivery_script .= "\n\t" . 'orderfunc.make_delivery_time(selected_delivery_method);'; | |
| 276 | + $html .= apply_filters( 'usces_filter_cart_delivery_script', $cart_delivery_script, $usces_entries, $sendout ); | |
| 277 | +} | |
| 278 | + | |
| 279 | +/* Payment Method Script */ | |
| 280 | +if ( empty( $html ) ) { | |
| 281 | + $html = ' | |
| 282 | +<script type="text/javascript"> | |
| 283 | +jQuery( function($) {'; | |
| 284 | +} | |
| 285 | +$payments_str = ''; | |
| 286 | +$payments_arr = array(); | |
| 287 | +$payments = usces_get_system_option( 'usces_payment_method', 'sort' ); | |
| 288 | +$payments = apply_filters( 'usces_filter_available_payment_method', $payments ); | |
| 289 | +foreach ( (array) $payments as $array ) { | |
| 290 | + switch ( $array['settlement'] ) { | |
| 291 | + case 'acting_remise_card': | |
| 292 | + $paymod_base = 'remise'; | |
| 293 | + if ( 'on' == $usces->options['acting_settings'][ $paymod_base ]['card_activate'] && | |
| 294 | + 'on' == $usces->options['acting_settings'][ $paymod_base ]['howpay'] && | |
| 295 | + 'on' == $usces->options['acting_settings'][ $paymod_base ]['activate'] ) { | |
| 296 | + $payments_str .= "'" . $array['name'] . "': '" . $paymod_base . "', "; | |
| 297 | + $payments_arr[] = $paymod_base; | |
| 298 | + } | |
| 299 | + break; | |
| 300 | + } | |
| 301 | + $payments_str = apply_filters( 'usces_filter_payments_str', $payments_str, $array ); | |
| 302 | + $payments_arr = apply_filters( 'usces_filter_payments_arr', $payments_arr, $array ); | |
| 303 | +} | |
| 304 | +$payments_str = rtrim( $payments_str, ', ' ); | |
| 305 | +$html .= "\n\tvar uscesPaymod = { " . $payments_str . " }; | |
| 306 | + $(document).on( 'click', \"input[name='offer\\[payment_name\\]']\", function() {"; | |
| 307 | +foreach ( $payments_arr as $pm ) { | |
| 308 | + $html .= "\n\t\t$(\"#" . $pm . "\").css({\"display\":\"none\"});\n"; | |
| 309 | +} | |
| 310 | +$html .= "\n\t\tvar chk_pay = $(\"input[name='offer\\[payment_name\\]']:checked\").val(); | |
| 311 | + if( uscesPaymod[chk_pay] != '' ) { | |
| 312 | + $(\"#\"+uscesPaymod[chk_pay]).css({\"display\":\"table\"}); | |
| 313 | + } | |
| 314 | + });"; | |
| 315 | +foreach ( $payments_arr as $pn => $pm ) { | |
| 316 | + $html .= "\n\t$(\"#" . $pm . "\").css({\"display\":\"none\"});"; | |
| 317 | + $howpay = ''; | |
| 318 | + $html .= apply_filters( 'usces_filter_howpay', $howpay, $pm, $payments_arr ); | |
| 319 | +} | |
| 320 | +$html .= "\n\tch_pay = $(\"input[name='offer\\[payment_name\\]']:checked\").val(); | |
| 321 | + if( uscesPaymod[ch_pay] != '' ) { | |
| 322 | + $(\"#\"+uscesPaymod[ch_pay]).css({\"display\":\"\"}); | |
| 323 | + }"; | |
| 324 | +$html .= "\n}); | |
| 325 | +</script>\n"; | |