100 lines
4.3 KiB
PHP
100 lines
4.3 KiB
PHP
<?php
|
|
|
|
if (!defined('ABSPATH')) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
if ('no' === get_option('woocommerce_enable_shipping_calc') || !WC()->cart->needs_shipping()) {
|
|
return;
|
|
}
|
|
|
|
?>
|
|
|
|
<?php do_action('woocommerce_before_shipping_calculator'); ?>
|
|
|
|
<form class="woocommerce-shipping-calculator" action="<?php echo esc_url(wc_get_cart_url()); ?>" method="post">
|
|
|
|
<p><a href="#" class="shipping-calculator-button"><?php _e('Calculate Shipping', 'woocommerce'); ?></a></p>
|
|
|
|
<section class="shipping-calculator-form" style="display:none;">
|
|
|
|
<p class="form-row form-row-wide" id="calc_shipping_country_field">
|
|
<select name="calc_shipping_country" id="calc_shipping_country" class="country_to_state"
|
|
rel="calc_shipping_state">
|
|
<option value=""><?php _e('Select a country…', 'woocommerce'); ?></option>
|
|
<?php
|
|
foreach (WC()->countries->get_shipping_countries() as $key => $value) {
|
|
echo '<option value="' . esc_attr($key) . '"' . selected(WC()->customer->get_shipping_country(),
|
|
esc_attr($key), false) . '>' . esc_html($value) . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
</p>
|
|
|
|
<p class="form-row form-row-wide" id="calc_shipping_state_field">
|
|
<?php
|
|
$current_cc = WC()->customer->get_shipping_country();
|
|
$current_r = WC()->customer->get_shipping_state();
|
|
$states = WC()->countries->get_states($current_cc);
|
|
|
|
// Hidden Input
|
|
if (is_array($states) && empty($states)) {
|
|
?><input type="hidden" name="calc_shipping_state" id="calc_shipping_state"
|
|
placeholder="<?php esc_attr_e('State / county', 'woocommerce'); ?>" /><?php
|
|
|
|
// Dropdown Input
|
|
} elseif (is_array($states)) {
|
|
?><span>
|
|
<select name="calc_shipping_state" id="calc_shipping_state"
|
|
placeholder="<?php esc_attr_e('State / county', 'woocommerce'); ?>">
|
|
<option value=""><?php _e('Select a state…', 'woocommerce'); ?></option>
|
|
<?php
|
|
foreach ($states as $ckey => $cvalue) {
|
|
echo '<option value="' . esc_attr($ckey) . '" ' . selected($current_r, $ckey,
|
|
false) . '>' . __(esc_html($cvalue), 'woocommerce') . '</option>';
|
|
} ?>
|
|
</select>
|
|
</span><?php
|
|
|
|
// Standard Input
|
|
} else {
|
|
?><input type="text" class="input-text" value="<?php echo esc_attr($current_r); ?>"
|
|
placeholder="<?php esc_attr_e('State / county', 'woocommerce'); ?>" name="calc_shipping_state"
|
|
id="calc_shipping_state" /><?php
|
|
|
|
}
|
|
?>
|
|
</p>
|
|
|
|
<?php if (apply_filters('woocommerce_shipping_calculator_enable_city', true)) : ?>
|
|
|
|
<p class="form-row form-row-wide" id="calc_shipping_city_field">
|
|
<input type="text" class="input-text"
|
|
value="<?php echo esc_attr(WC()->customer->get_shipping_city()); ?>"
|
|
placeholder="<?php esc_attr_e('City', 'woocommerce'); ?>" name="calc_shipping_city"
|
|
id="calc_shipping_city"/>
|
|
</p>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if (apply_filters('woocommerce_shipping_calculator_enable_postcode', true)) : ?>
|
|
|
|
<p class="form-row form-row-wide" id="calc_shipping_postcode_field">
|
|
<input type="text" class="input-text"
|
|
value="<?php echo esc_attr(WC()->customer->get_shipping_postcode()); ?>"
|
|
placeholder="<?php esc_attr_e('Postcode / ZIP', 'woocommerce'); ?>" name="calc_shipping_postcode"
|
|
id="calc_shipping_postcode"/>
|
|
</p>
|
|
|
|
<?php endif; ?>
|
|
|
|
<p>
|
|
<button type="submit" name="calc_shipping" value="1" class="button"><?php _e('Update Totals',
|
|
'woocommerce'); ?></button>
|
|
</p>
|
|
|
|
<?php wp_nonce_field('woocommerce-cart'); ?>
|
|
</section>
|
|
</form>
|
|
|
|
<?php do_action('woocommerce_after_shipping_calculator'); ?>
|