woocommerce 结帐页面添加自定义费用字段ajax更新

我试图在结账时向订单总额支付定制费用,我在 woocommerce 中添加了一个复选框:

  1. add_action( 'woocommerce_after_checkout_billing_form', 'add_box_option_to_checkout' );
  2. function add_box_option_to_checkout( $checkout ) {
  3.     echo '<div id="message_fields">';
  4.     woocommerce_form_field( 'add_gift_box', array(
  5.         'type'          => 'checkbox',
  6.         'class'         => array('add_gift_box form-row-wide'),
  7. 
    
  8.         'label'         => __('Ilość pudełek ozdobnych - 25 PLN/szt'),
  9.         'placeholder'   => __(''),
  10.         ), $checkout->get_value( 'add_gift_box' ));
  11.         echo '</div>';
  12. }

单击复选框时更新购物车的脚本(无需额外的 AJAX 请求!):

  1. add_action( 'wp_footer', 'woocommerce_add_gift_box' );
  2. function woocommerce_add_gift_box() {
  3.     if (is_checkout()) {
  4.     ?>
  5.     <script type="text/javascript">
  6.     jQuery( document ).ready(function( $) {
  7.         $('#add_gift_box').click(function(){
  8.             jQuery('body').trigger('update_checkout');
  9.         });
  10.     });
  11.     </script>
  12.     <?php
  13.     }
  14. }

增加费用的行动:

  1. add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
  2. function woo_add_cart_fee( $cart ){
  3.         if ( ! $_POST || ( is_admin() && ! is_ajax() ) ) {
  4.         return;
  5.     }
  6. 
    
  7.     if ( isset( $_POST['post_data'] ) ) {
  8.         parse_str( $_POST['post_data'], $post_data );
  9.     } else {
  10.         $post_data = $_POST; // fallback for final checkout (non-ajax)
  11.     }
  12. 
    
  13.     if (isset($post_data['add_gift_box'])) {
  14.         $extracost = 25; // not sure why you used intval($_POST['state']) ?
  15.         WC()->cart->add_fee( 'Ozdobne pudełka:', $extracost );
  16.     }
  17. 
    
  18. }

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/82386

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注