Woocommerce定制运输功能

时间:2016-04-22 12:08:50

标签: php wordpress transient

我有一个使用WooCommerce的WordPress网站,并提供定制的运送功能。所有这一切都是找到用户的送货地址,并根据不同的运输规则适用的里程,即免费送货,计算出客户与仓库之间的距离。

但是我遇到的问题是,如果有人在我的帐户中或通过后端更改他们的送货地址,然后转到结帐时仍然使用旧的邮政编码。我假设这是在WooCommerce中缓存的吗?

这是一个能够解决距离的功能,任何有帮助的人都会很棒。

private function getDistanceAway() {
$distanceInMiles = null;
 $customer = new WC_Customer();

if($customer->get_shipping_postcode()) {
     $postcode = $customer->get_shipping_postcode();
 } else {
     $postcode = $customer->get_postcode();
 }

$fromPostcode = str_replace(' ', '', get_option('woocommerce_free_delivary_location_postcode'));
$toPostcode= str_replace(' ', '', $postcode);
$result = array();

//call google api
$url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=$fromPostcode&destinations=$toPostcode&mode=car&language=en?EN&sensor=false&units=imperial";
$data = @file_get_contents($url);
$result = json_decode($data, true);

//calculate the distance away
if(isset($result['rows'][0]['elements'][0]['distance']['text'])) {
    $distanceInMiles = intval(str_replace(' mi', '', $result['rows'][0]['elements'][0]['distance']['text']));
 }
    return $distanceInMiles;
}

0 个答案:

没有答案