gpt4 book ai didi

php - 强制 WooCommerce 更新片段

转载 作者:可可西里 更新时间:2023-11-01 13:33:52 24 4
gpt4 key购买 nike

我创建了一个插件,它使用 WooCommerce 片段向用户显示他们有多少积分。当用户使用某些积分(通过将产品添加到购物车)时,一切正常。

但是当管理员通过管理界面向用户添加积分时,片段不会更新,直到用户将新产品添加到购物车中。

这是代码示例:

function create_points_widget_content() {
$usersPoints = esc_attr( get_user_meta( get_current_user_id(), USERS_POINTS, true ));
if (!isset($userPoints) || $userPoints == "") $userPoints = 0;
$usedPoints = get_current_points_in_cart('', 0);

?>
<div class="points-widget-v2">
<div><?php echo __("Your points", "plugin-domain"); ?>:<span class="users-points"><?php echo $usersPoints; ?></span></div>
<div><?php echo __("Actually used", "plugin-domain"); ?>:<span class="used-points"><?php echo $usedPoints; ?></span></div>
</div>
<?php
}

// Update top right price
function add_points_widget_to_fragment( $fragments ) {
global $woocommerce;
ob_start();

create_points_widget_content();

$fragments['div.points-widget-v2'] = ob_get_clean();
return $fragments;
}
add_filter('add_to_cart_fragments', 'add_points_widget_to_fragment');

有什么办法可以强制碎片刷新自己吗?

最佳答案

通过触发在 Woocommerce 中找到的核心处理程序以通过 ajax 刷新片段,可能会有更短的答案。

function refresh_fragments() {
console.log('fragments refreshed!');
$( document.body ).trigger( 'wc_fragment_refresh' );
}

refresh_fragments();
setInterval(refresh_fragments, 60000);

此代码应触发绑定(bind)到 cart-fragments.js 中的“wc_fragment_refresh”的以下函数

function refresh_cart_fragment() {
$.ajax( $fragment_refresh );
}

关于php - 强制 WooCommerce 更新片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com