Jquery 在WooCommerce中结账时,如何自动检查到多种免运费选择状态之一?

Jquery 在WooCommerce中结账时,如何自动检查到多种免运费选择状态之一?,jquery,wordpress,woocommerce,checked,Jquery,Wordpress,Woocommerce,Checked,我在创建这个网站时遇到问题 有以下几种产品可供购买: 结帐: 当用户购买2种以上产品并选择“Ngoái HCm”作为发货地点时: 运费显示两个可能的单选按钮以供检查 选项1:45000(针对一种产品) 选项2:65000(不适用于1种产品) 当用户选择状态(Chọ北曲ận、 休伊ện) ==“非政府组织与HCm”。 并且购物车有1个产品,运费应自动检查为45000(默认)。 对于购物车中超过1个产品,应自动检查至65000 以前,当购物车有2个以上的产品时,我检查了选项65000,但这不正常。我

我在创建这个网站时遇到问题

有以下几种产品可供购买:

结帐:

当用户购买2种以上产品并选择“Ngoái HCm”作为发货地点时:
运费显示两个可能的单选按钮以供检查
选项1:45000(针对一种产品)
选项2:65000(不适用于1种产品)

当用户选择状态(Chọ北曲ận、 休伊ện) ==“非政府组织与HCm”。
并且购物车有1个产品,运费应自动检查为45000(默认)。
对于购物车中超过1个产品,应自动检查至65000

以前,当购物车有2个以上的产品时,我检查了选项65000,但这不正常。我认为jQuery必须在选择状态(交付目的地)时设置

下面是我在form-billing.php中的代码

global $woocommerce;
  $attendee_count = 0;
  if (sizeof($woocommerce->cart->get_cart())>0) :
    foreach ($woocommerce->cart->get_cart() as $item_id => $values) :
      $_product = $values['data'];
      if ($_product->exists() && $values['quantity']>0) :
        if (get_post_meta($_product->id, '_tribe_wooticket_for_event') > 0)
          $attendee_count += $values['quantity'];
      endif;
    endforeach;
  endif; 
  echo "<div class='sl_sp'>Number product in cart: <span class='soluong_sp'>" . $attendee_count . "</span></div>";
  if($attendee_count == 1 ){ // so luong la 1 sp
    ?>
    <style>
    .woocommerce ul#shipping_method li:nth-child(2)
    {display: none;}
    </style>
    <?
  }else{ ?>

  <style>
    .woocommerce ul#shipping_method li:nth-child(2){display: block;}
    .woocommerce ul#shipping_method li:nth-child(1){display: none;}
  </style>
  <script>
  jQuery(document).ready(function() {
    jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
  });
  </script>

<?php }  ?>
global$woodcommerce;
$attendee_count=0;
如果(sizeof($woocommerce->cart->get_cart())>0):
foreach($woocommerce->cart->get_cart()作为$item_id=>$value):
$_product=$values['data'];
如果($\u product->exists()&&$values['quantity']>0):
如果(获取发布元数据($\u产品->id,“\u部落\u活动的门票”)>0)
$attendee_count+=$value['quantity'];
endif;
endforeach;
endif;
echo“购物车中的产品编号:”$出席人数。"";
如果($attendee_count==1){//so luong la 1 sp
?>
.woocommerce ul#装运方法李:第n个孩子(2)
{显示:无;}
.woocommerce ul#shipping#u方法li:n子级(2){display:block;}
.woocommerce ul#shipping#u方法li:n子项(1){display:none;}
jQuery(文档).ready(函数(){
jQuery(“输入#运输#方法0 oik 0)重量0区域0运输45”).prop(“选中”,为真);
});
我已将默认状态设置为“NgoáI HCM”,当我添加1个或多个产品时,它会正确显示。但当选择另一个状态,并再次选择“NgoáI HCM”时,它是错误的(未正确选中)。

此代码正确:

jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
我在您结账页面的控制台中试用过,它正在工作。
现在,由于这段代码是使用Ajax注入页面的,所以不需要“ready”函数包装器

页面已准备就绪。
load
事件将不会发生

因此,在clear中,请尝试以下方法:

<script>
  jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
</script>

jQuery(“输入#运输#方法0 oik 0)重量0区域0运输45”).prop(“选中”,为真);
与此相反:

<script>
jQuery(document).ready(function() {
  jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
});
</script>

jQuery(文档).ready(函数(){
jQuery(“输入#运输#方法0 oik 0)重量0区域0运输45”).prop(“选中”,为真);
});
此代码是正确的:

jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
我在您结账页面的控制台中试用过,它正在工作。
现在,由于这段代码是使用Ajax注入页面的,所以不需要“ready”函数包装器

页面已准备就绪。
load
事件将不会发生

因此,在clear中,请尝试以下方法:

<script>
  jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
</script>

jQuery(“输入#运输#方法0 oik 0)重量0区域0运输45”).prop(“选中”,为真);
与此相反:

<script>
jQuery(document).ready(function() {
  jQuery("input#shipping_method_0_oik_weight_zone_shipping_45").prop( "checked", true );
});
</script>

jQuery(文档).ready(函数(){
jQuery(“输入#运输#方法0 oik 0)重量0区域0运输45”).prop(“选中”,为真);
});

我对你的问题做了很多编辑…请重新阅读,看看我是否做得对!)谢谢@LouySpatricebesette.^^尝试只删除
jQuery(文档)。准备好(函数(){/code>和
})
(下面两行)但保留
jQuery(“输入#装运方法(0)oik(重量)区域(装运)45”)。prop;
因为它是正确的。简言之,只需删除“就绪”包装。我对你的问题做了很多编辑…请重新阅读,看看我是否做得正确!;)谢谢@LouySpatriceBesette。^^^尝试只删除
jQuery(document).ready(function(){
});
(下面两行)但保留
jQuery(“输入#装运方法(0)oik(重量)区域(装运)(45)”).prop(“选中”,为真)
,因为它是正确的。简言之,只需删除“准备就绪”"wrapper.add code在控制台中成功,但当将代码添加到file.php/plugins/woocommerce/templates/checkout/form-billing.php时,它不起作用。我警告测试用例购买1个产品和>1个产品,它正确警告…嗯…我们应该慢慢讨论…通过逐步定义所有内容。«was alert test case»只是模糊了我。而且,w嗯……你能检查一下我的个人资料并把我放到facebook上吗?---或者任何人都可以投票给他,让他至少有20个代表可以访问so聊天???@Louys Patrice Bessette:谢谢你的支持,我是Wordpress和woocommerce的新手。我的问题通过将所有代码移到Shipping方法文件中来解决。/plugins/woocommerce/templates/cart/cart-shiping.php.和jquery运行Oke。我在个人资料中找不到你的facebook,你能给我一个链接,让我结交朋友并讨论一些关于wordpress、php等的事情吗?再次感谢你的支持…今晚我将更新我的结果,因为每个人都可以查看和使用它。
在控制台中添加代码是成功的,但当向f添加代码时ile.php/plugins/woocommerce/templates/checkout/form-billing.php它不起作用。我是警报测试用例购买1个产品和>1个产品,它是正确的警报…嗯..我们应该慢慢讨论..通过一步一步地定义每件事。«was警报测试用例»只是模糊了我。而且,嗯…你能检查我的个人资料并在facebook上找到我吗---或者任何人都可以投票给他,这样他就可以有至少20名代表访问so chat???@Louys Patrice Bessette:谢谢你的支持,我是Wordpress和woocommerce的新手。我的问题通过将所有代码移到shiping方法文件中来解决。/plugins/woocommerce/templates/cart/cart-shiping.php。然后运行jquery OK。我找不到你了在你的facebook个人资料中,你能给我一个链接让我交朋友并讨论一些关于wordpress、php等的事情吗?再次感谢你的支持…今晚我将更新我的结果,因为每个人都可以查看和使用它。