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