wordpress - WooCommerce 预订:在产品页面上触发 AJAX 重新计算预订成本
问题描述
我在 WooCommerce Bookings 中的 date-picker.php 模板中添加了几个新字段,当这些字段更新时,我需要在产品页面上触发 AJAX 重新计算预订成本。
目前,当更新 date-picker.php 中的标准字段时会触发重新计算。但是,我将使用附加字段来重新计算持续时间和预订成本,因此我需要在对新字段进行更新时触发此 AJAX 重新计算。
如何触发 AJAX 重新计算?我试过简单地触发一个change
标准字段上的事件,但这似乎不起作用。
解决方案
我遇到过同样的问题。如果它在未来对某人有所帮助,这是我的工作:
转到 /wp-content/plugins/woocommerce-bookings/templates/single-product/add-to-cart/booking.php 这是单一产品预订表格的模板。
然后,您可以在Now add a custom field or code to this action(我使用 wc-fields-factory)中移动其中一个操作,例如<?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
(或创建您自己的操作)。<div id="wc-bookings-booking-form"/>.
当您更改预订表单中的字段值时,将触发 AJAX 重新计算。您可以在您的 functions.php 文件(在您的主题内)中挂钩此触发器,以根据您添加的自定义字段更改成本,如下所示:
add_filter( 'booking_form_calculated_booking_cost', 'my_booking_cost', 10, 3 );
function my_booking_cost( $booking_cost, $booking, $posted ) {
/* use fields here to show a new booking cost*/
$my_time = $posted[ <name of custom field> ]; //access field within booking form
$booking_cost = 1; //whatever your calc is
return $booking_cost;
}
推荐阅读
- reactjs - React Hooks and Enzyme:React 一直告诉我将状态更新包装在 act(...) 中,即使我认为我做到了
- node.js - PureScript Node.FS.Sync readTextFile 返回垃圾
- reactjs - React apollo:访问缓存以了解分页查询了多少项
- reactjs - ReactHooks:存储值更改时调用回调
- javascript - 完整日历未在 Bootstrap 选项卡中自动加载?
- spring - 使用 Spring 的依赖于配置文件的 log4j2 配置
- asp.net-mvc - 有没有办法在 ASP.NET MVC 应用程序的组合框中选择空值?
- c# - 有没有办法将模型的数据作为 Razor 中的变量访问(而不是 Html.DisplayFor())?
- java - 如何将宽空间变为单个空间?Java 字符串
- git - 将分叉的存储库转回分支