页面加载后不触发功能


add_action( 'woocommerce_thankyou', 'orderReceived' );
function orderReceived($order_id)
{
    $order = wc_get_order($order_id);
    if (!$order->has_status('failed') && did_action('woocommerce_thankyou') === 1) {
        addPoints(1000, 'add', 'order');
    }
}

我怎样才能确保上述功能只在woocommerce感谢页面上触发一次?

目前它触发每次我重新加载感谢页面。这意味着某人可以得到无限个点。

您可以使用订单元数据来检查是否已经添加了点。

试试下面的代码:-

$points_check = $order->get_meta('_points_added');
If($points_check != 'added'){
$order->update_meta_data( '_points_added', 'added' );
 $order->save();
addPoints(1000, 'add', 'order');
}

最新更新