Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
woocommerce
/
includes
/
shortcodes
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('ABSPATH') || exit; class WC_Shortcode_Cart { public static function calculate_shipping() { try { WC()->shipping()->reset_shipping(); $address = array(); $address['country'] = isset($_POST['calc_shipping_country']) ? wc_clean(wp_unslash($_POST['calc_shipping_country'])) : ''; $address['state'] = isset($_POST['calc_shipping_state']) ? wc_clean(wp_unslash($_POST['calc_shipping_state'])) : ''; $address['postcode'] = isset($_POST['calc_shipping_postcode']) ? wc_clean(wp_unslash($_POST['calc_shipping_postcode'])) : ''; $address['city'] = isset($_POST['calc_shipping_city']) ? wc_clean(wp_unslash($_POST['calc_shipping_city'])) : ''; $address = apply_filters('woocommerce_cart_calculate_shipping_address', $address); if ($address['postcode'] && !WC_Validation::is_postcode($address['postcode'], $address['country'])) { throw new Exception(__('Please enter a valid postcode / ZIP.', 'woocommerce')); } elseif ($address['postcode']) { $address['postcode'] = wc_format_postcode($address['postcode'], $address['country']); } if ($address['country']) { if (!WC()->customer->get_billing_first_name()) { WC()->customer->set_billing_location($address['country'], $address['state'], $address['postcode'], $address['city']); } WC()->customer->set_shipping_location($address['country'], $address['state'], $address['postcode'], $address['city']); } else { WC()->customer->set_billing_address_to_base(); WC()->customer->set_shipping_address_to_base(); } WC()->customer->set_calculated_shipping(true); WC()->customer->save(); wc_add_notice(__('Shipping costs updated.', 'woocommerce'), 'notice'); do_action('woocommerce_calculated_shipping'); } catch (Exception $e) { if (!empty($e)) { wc_add_notice($e->getMessage(), 'error'); } } } public static function output($atts) { if (!apply_filters('woocommerce_output_cart_shortcode_content', true)) { return; } wc_maybe_define_constant('WOOCOMMERCE_CART', true); $atts = shortcode_atts(array(), $atts, 'woocommerce_cart'); $nonce_value = wc_get_var($_REQUEST['woocommerce-shipping-calculator-nonce'], wc_get_var($_REQUEST['_wpnonce'], '')); if (!empty($_POST['calc_shipping']) && (wp_verify_nonce($nonce_value, 'woocommerce-shipping-calculator') || wp_verify_nonce($nonce_value, 'woocommerce-cart'))) { self::calculate_shipping(); WC()->cart->calculate_totals(); } do_action('woocommerce_check_cart_items'); WC()->cart->calculate_totals(); if (WC()->cart->is_empty()) { wc_get_template('cart/cart-empty.php'); } else { wc_get_template('cart/cart.php'); } } }