我已经设置了一些代码来使用PHP if语句触发的Javascript来调整WooCommerce购物车中的一些内容,具体取决于购物车中的小计。我已成功使用以下代码来获取小计:
global $woocommerce;
$subt = $woocommerce->cart->subtotal;
不幸的是,购物车也可以使用Ajax进行更新,无需重新加载页面,这意味着我的计算被抛弃了。
我想我需要用Ajax更新购物车总数,但我在网上看到的解决方案似乎更倾向于更复杂的解决方案,我找不到一种方法可以将其归结为只检索小计值。
我真的很感激任何帮助。
一种解决方案是使用Javascript添加对购物车中的更改的查找,如果有,则使用Ajax调用PHP函数。你可以在这里阅读如何做到这一点:https://codex.wordpress.org/AJAX_in_Plugins
假设这是你的PHP函数:
add_action( 'wp_ajax_my_action', 'my_action' );
function my_action() {
global $wpdb;
$whatever = intval( $_POST['whatever'] );
$whatever += 10;
echo $whatever;
wp_die();
}
那么这将是你的JS脚本:
jQuery( document.body ).on( 'updated_cart_totals', function(){
var data = {
'action': 'my_action',
'whatever': ajax_object.we_value
};
jQuery.post(ajax_object.ajax_url, data, function(response) {
alert('Got this from the server: ' + response);
});
});