Php 通过ajax更新商业配送方法
我正在使用Wordpress和Woocommerce建立一个食品订购网站。到目前为止,我一直做得很好,但有一点被卡住了,运输方式应该自动选择 流程是什么样的?用户访问我的网站并输入送货地址的邮政编码,然后我的网站显示以该邮政编码送货的餐厅。一些餐馆用更少的时间和更少的运费交付邮政编码,但一些餐馆需要更多的时间和更多的运费 到目前为止,我所做的是从任何一家餐厅提供给我的数据库中获取配送代码。如果用户的邮政编码在列表中不存在,我们将发出警报,否则我们将继续前进 下一步是在更短的送货时间内取回所有按该邮政编码送货的餐厅,然后在更长的送货时间内取回按该邮政编码送货的餐厅。基于更少或更多的交付时间,我分别在A区或B区标记用户 我为A区和B区创建了统一费率的配送方法,可以从购物车/结帐页面的下拉列表中选择。现在问题就在这里 用户不应该选择运费是多少。应根据用户被标记到的区域自动选择和应用该区域 这种自动更新不是我能做到的 我试过什么? 正确的过程应该是将该区域放入Woocommerce会话,当用户到达购物车或结帐页面时,应该自动选择并应用该区域 我找不到正确的方法来调用,这可能会触发ajax调用来更新shipping。任何想法都会有帮助 问候 使用Php 通过ajax更新商业配送方法,php,jquery,ajax,wordpress,woocommerce,Php,Jquery,Ajax,Wordpress,Woocommerce,我正在使用Wordpress和Woocommerce建立一个食品订购网站。到目前为止,我一直做得很好,但有一点被卡住了,运输方式应该自动选择 流程是什么样的?用户访问我的网站并输入送货地址的邮政编码,然后我的网站显示以该邮政编码送货的餐厅。一些餐馆用更少的时间和更少的运费交付邮政编码,但一些餐馆需要更多的时间和更多的运费 到目前为止,我所做的是从任何一家餐厅提供给我的数据库中获取配送代码。如果用户的邮政编码在列表中不存在,我们将发出警报,否则我们将继续前进 下一步是在更短的送货时间内取回所有按该
$(body.trigger('update_checkout')代码>在JS中。这将触发一个请求,请求WC\u AJAX->update\u order\u review
,然后将在签出区域提取所有表单数据。如果您需要传递任何自定义数据,请向签出添加隐藏输入,它应允许您通过$\u POST
数据传递值
从这里开始,如果您需要处理可用的方法和会话设置,您可以像我一样,覆盖cart-shipping.php中的shipping\u html
函数,如下所示
function woo_new_cart_shipping_html()
{
global $woocommerce;
$data_stream = extract_data_from_str( $_POST['post_data'] );
$packages = $woocommerce->shipping->get_packages();
$chosen_method = isset( $woocommerce->session->chosen_shipping_methods[0] ) ? $woocommerce->session->chosen_shipping_methods[0] : '';
foreach ( $packages as $i => $package )
{
$methods = apply_filters( 'woo_filter_available_methods_by_date', $package['rates'], $data_stream );
wc_get_template( 'cart/cart-shipping.php', array('package' => $package,
'available_methods' => apply_filters( 'woo_sort_shipping_methods_by_cost', $methods ),
'show_package_details' => ( sizeof( $packages ) > 1 ),
'index' => $i,
'chosen_method' => apply_filters( 'woo_set_lowest_shipping_method', $chosen_method, $methods, $data_stream ) ) );
}
}
这是防更新的,它将允许您通过添加过滤器自定义该模板
至于重置会话以符合所选方法,不幸的是,我没有答案,因为我自己仍在努力解决这个问题。感谢Kirk的格式化!在其他地方搜索我自己的答案时有点匆忙。嘿,Trevor,我要说的是,你是说使用JQuery选择HTML主体元素,然后触发update\u checkout事件吗?