PluginProbe
Welcart e-Commerce / 1.3.16
Welcart e-Commerce v1.3.16
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
usc-e-shop / includes / delivery_info_script.php

delivery_info_script.php in Welcart e-Commerce 1.3.16, at includes/delivery_info_script.php

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