var toDoubleDigits = function(num) {
num += "";
if( num.length === 1 ) num = "0".concat(num);
return num;
};
var selected_delivery_method = \'\';
var selected_delivery_date = \'\';
var selected_delivery_time = \'\';
var add_shipping = new Array();
function addDate(year, month, day, add) {
var date = new Date( Number(year), (Number(month)-1), Number(day) );
var baseSec = date.getTime();
var addSec = Number(add)*86400000;
var targetSec = baseSec+addSec;
date.setTime(targetSec);
var yy = date.getFullYear()+"";
var mm = toDoubleDigits(date.getMonth()+1);
var dd = toDoubleDigits(date.getDate());
var newdate = new Array();
newdate["year"] = yy;
newdate["month"] = mm;
newdate["day"] = dd;
return(newdate);
}
jQuery( function($) {';
/* Selectable delivery method(選択可能な配送方法) */
$default_deli = array_values( apply_filters( 'usces_filter_get_available_delivery_method', $usces->get_available_delivery_method() ) );
if ( ! isset( $usces_entries['order']['delivery_method'] ) || '' == $usces_entries['order']['delivery_method'] || ! in_array( $usces_entries['order']['delivery_method'], $default_deli, true ) ) {
$selected_delivery_method = $default_deli[0];
} else {
$selected_delivery_method = $usces_entries['order']['delivery_method'];
}
$html .= '
selected_delivery_method = \'' . $selected_delivery_method . '\';';
if ( isset( $usces_entries['order']['delivery_date'] ) ) {
$html .= '
selected_delivery_date = \'' . $usces_entries['order']['delivery_date'] . '\';';
}
/* ItemShipping of goods that are in the cart.(カートに入っている商品の発送日目安) */
$shipping = 0;
$cart = $usces->cart->get_cart();
$cart_count = ( $cart && is_array( $cart ) ) ? count( $cart ) : 0;
$shipping_rule_ex = apply_filters( 'usces_filter_item_shipping_rule_ex', 9 );
for ( $i = 0; $i < $cart_count; $i++ ) {
$cart_row = $cart[ $i ];
$item_shipping = $usces->getItemShipping( $cart_row['post_id'] );
if ( 0 === (int) $item_shipping || $shipping_rule_ex === (int) $item_shipping ) {
$shipping = 0;
break;
}
if ( $shipping < $item_shipping ) {
$shipping = $item_shipping;
}
}
$html .= "\n\t" . 'var shipping = ' . (string) $shipping . ';';
/* 配送業務締時間 */
$hour = ( ! empty( $usces->options['delivery_time_limit']['hour'] ) ) ? $usces->options['delivery_time_limit']['hour'] : '00';
$min = ( ! empty( $usces->options['delivery_time_limit']['min'] ) ) ? $usces->options['delivery_time_limit']['min'] : '00';
$html .= "\n\t" . 'var delivery_time_limit_hour = "' . $hour . '";';
$html .= "\n\t" . 'var delivery_time_limit_min = "' . $min . '";';
/* 最短宅配時間帯 */
$html .= "\n\t" . 'var shortest_delivery_time = ' . (int) $usces->options['shortest_delivery_time'] . ';';
/* 配送希望日を何日後まで表示するか */
$delivery_after_days = ( ! empty( $usces->options['delivery_after_days'] ) ) ? (int) $usces->options['delivery_after_days'] : 15;
$html .= "\n\t" . 'var delivery_after_days = ' . $delivery_after_days . ';';
/* 配送先県(customer) */
$html .= "\n\t" . 'var customer_pref = "' . esc_js( $usces_entries['customer']['pref'] ) . '";';
/* 配送先県(customer/delivery) */
$delivery_pref = ( isset( $usces_entries['delivery']['pref'] ) && ! empty( $usces_entries['delivery']['pref'] ) ) ? $usces_entries['delivery']['pref'] : $usces_entries['customer']['pref'];
$html .= "\n\t" . 'var delivery_pref = "' . esc_js( $delivery_pref ) . '";';
$delivery_country = ( isset( $usces_entries['delivery']['country'] ) && ! empty( $usces_entries['delivery']['country'] ) ) ? $usces_entries['delivery']['country'] : $usces_entries['customer']['country'];
$html .= "\n\t" . 'var delivery_country = "' . esc_js( $delivery_country ) . '";';
/* 選択可能な配送方法に設定されている配達日数 */
$html_days = "\n\t" . 'var delivery_days = [];';
foreach ( (array) $default_deli as $deli_id ) {
$index = $usces->get_delivery_method_index( $deli_id );
if ( 0 <= $index ) {
$html_days .= "\n\t" . 'delivery_days[' . $deli_id . '] = [];';
$html_days .= "\n\t" . 'delivery_days[' . $deli_id . '].push("' . $usces->options['delivery_method'][ $index ]['days'] . '");';
}
}
/* 配達日数に設定されている県毎の日数 */
$target_market = ( isset( $usces->options['system']['target_market'] ) && ! empty( $usces->options['system']['target_market'] ) ) ? $usces->options['system']['target_market'] : usces_get_local_target_market();
foreach ( (array) $target_market as $tm ) {
$prefs[ $tm ] = get_usces_states( $tm );
array_shift( $prefs[ $tm ] );
}
$delivery_days = $usces->options['delivery_days'];
$delivery_days_count = ( $delivery_days && is_array( $delivery_days ) ) ? count( $delivery_days ) : 0;
$html_days .= "\n\t" . 'var delivery_days_value = [];';
foreach ( (array) $default_deli as $key => $deli_id ) {
$index = $usces->get_delivery_method_index( $deli_id );
if ( 0 <= $index ) {
$days = (int) $usces->options['delivery_method'][ $index ]['days'];
if ( 0 <= $days ) {
for ( $i = 0; $i < $delivery_days_count; $i++ ) {
if ( (int) $delivery_days[ $i ]['id'] == $days ) {
$html_days .= "\n\t" . 'delivery_days_value[' . $days . '] = [];';
foreach ( (array) $target_market as $tm ) {
$html_days .= "\n\t" . 'delivery_days_value[' . $days . ']["' . $tm . '"] = [];';
foreach ( (array) $prefs[ $tm ] as $pref ) {
$pref = esc_js( $pref );
$html_days .= "\n\t" . 'delivery_days_value[' . $days . ']["' . $tm . '"]["' . $pref . '"] = [];';
if ( isset( $delivery_days[ $i ][ $tm ][ $pref ] ) ) {
$html_days .= "\n\t" . 'delivery_days_value[' . $days . ']["' . $tm . '"]["' . $pref . '"].push("' . (int) $delivery_days[ $i ][ $tm ][ $pref ] . '");';
}
}
}
}
}
}
}
}
$html .= apply_filters( 'usces_filter_delivery_days_value', $html_days, $cart, $default_deli, $prefs );
$business_days = 0;
list( $yy, $mm, $dd ) = getToday();
$business = ( isset( $usces->options['business_days'][ $yy ][ $mm ][ $dd ] ) ) ? $usces->options['business_days'][ $yy ][ $mm ][ $dd ] : 1;
while ( 1 !== (int) $business ) {
$business_days++;
list( $yy, $mm, $dd ) = getNextDay( $yy, $mm, $dd );
$business = $usces->options['business_days'][ $yy ][ $mm ][ $dd ];
}
$html .= "\n\t" . 'var business_days = ' . $business_days . ';';
$html .= "\n\t" . 'selected_delivery_time = \'' . esc_js( $usces_entries['order']['delivery_time'] ) . '\';';
$html_time = "\n\t" . 'var delivery_time = [];delivery_time[0] = [];';
foreach ( (array) $usces->options['delivery_method'] as $dmid => $dm ) {
$dm['time'] = usces_change_line_break( $dm['time'] );
$lines = explode( "\n", $dm['time'] );
$html_time .= "\n\t" . 'delivery_time[' . $dm['id'] . '] = [];';
foreach ( (array) $lines as $line ) {
if ( '' !== trim( $line ) ) {
$html_time .= "\n\t" . 'delivery_time[' . $dm['id'] . '].push("' . trim( $line ) . '");';
}
}
}
$html .= apply_filters( 'usces_filter_delivery_time_value', $html_time, $cart, $default_deli, $prefs );
$cart_delivery_script = "\n
$(document).on( 'change', '#delivery_method_select', function() {
orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0));
orderfunc.make_delivery_time(($('#delivery_method_select option:selected').val()-0));
});
$(document).on( 'click', '#delivery_flag1', function() {
if( customer_pref != delivery_pref ) {
delivery_pref = customer_pref;
orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0));
}
});
$(document).on( 'click', '#delivery_flag2', function() {
if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) {
delivery_pref = $('#delivery_pref').val();
orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0));
}
});
$(document).on( 'change', '#delivery_pref', function() {
if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) {
delivery_pref = $('#delivery_pref').val();
orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0));
}
});
$(document).on( 'blur', '#search_zipcode', function() {
if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) {
$('#search_zipcode_change').val($('#zipcode').val());
delivery_pref = $('#delivery_pref').val();
orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0));
}
});
orderfunc = {
make_delivery_date : function(selected) {
var option = '';
var message = '';
if( delivery_days[selected] != undefined && 0 <= delivery_days[selected] ) {
switch(shipping) {
case 0:
case 9:
break;
default:
var date = new Array();
date['year'] = '" . $sendout['sendout_date']['year'] . "';
date['month'] = '" . $sendout['sendout_date']['month'] . "';
date['day'] = '" . $sendout['sendout_date']['day'] . "';
if( delivery_days_value[delivery_days[selected]] != undefined ) {
if( delivery_days_value[delivery_days[selected]][delivery_country][delivery_pref] != undefined ) {
date = addDate(date[\"year\"], date[\"month\"], date[\"day\"], delivery_days_value[delivery_days[selected]][delivery_country][delivery_pref] );
}
}
var date_str = date[\"year\"]+\"-\"+date[\"month\"]+\"-\"+date[\"day\"];
switch(shortest_delivery_time) {
case 0:
//message = '最短 '+date_str+' からご指定いただけます。';
break;
case 1:
message = '最短 '+date_str+' の午前中からご指定いただけます。';
break;
case 2:
message = '最短 '+date_str+' の午後からご指定いただけます。';
break;
}";
$delivery_after_days_script = "
option += '';
for( var i = 0; i < delivery_after_days; i++ ) {
date_str = date[\"year\"]+\"-\"+date[\"month\"]+\"-\"+date[\"day\"];
if( date_str == selected_delivery_date ) {
option += '';
} else {
option += '';
}
date = addDate( date[\"year\"], date[\"month\"], date[\"day\"], 1 );
}";
$cart_delivery_script .= apply_filters( 'usces_delivery_after_days_script', $delivery_after_days_script );
$cart_delivery_script .= "
break;
}
}
if( option == '' ) {
option = '';
}
$(\"#delivery_date_select\").html(option);
$(\"#delivery_time_limit_message\").html(message);
},
make_delivery_time : function(selected) {
var option = '';
if( delivery_time[selected] != undefined ) {
for( var i = 0; i < delivery_time[selected].length; i++ ) {
if( delivery_time[selected][i] == selected_delivery_time ) {
option += '';
} else {
option += '';
}
}
}
if( option == '' ) {
option = '';
}
$(\"#delivery_time_select\").html( option );
}
};";
if ( 1 !== (int) $usces_entries['delivery']['delivery_flag'] ) {
$cart_delivery_script .= "\n\t$(\"#delivery_table\").css({\"display\":\"none\"});";
}
$cart_delivery_script .= "\n\t" . 'orderfunc.make_delivery_date(selected_delivery_method);';
$cart_delivery_script .= "\n\t" . 'orderfunc.make_delivery_time(selected_delivery_method);';
$html .= apply_filters( 'usces_filter_cart_delivery_script', $cart_delivery_script, $usces_entries, $sendout );
}
/* Payment Method Script */
if ( empty( $html ) ) {
$html = '
\n";