gpt4 book ai didi

php - 修改 WooCommerce Is_Purchasable

转载 作者:可可西里 更新时间:2023-11-01 00:05:46 26 4
gpt4 key购买 nike

我正在努力实现我自己的预订系统,我在其中为每个产品设置了一个 is_preorder 自定义字段。

我试图修改 WooCommerce 的 Is_Purchasable 选项,这样,如果产品具有预购状态并且它已经过了预购截止日期,它应该无法购买。我尝试了很多方法,但似乎没有任何效果。

这是我做的事情(粗略的想法)

add_filter('woocommerce_is_purchasable', 'preorder_is_purchasable');

function preorder_is_purchasable() {

// this is a field added using 'Advance Custom Fields' plugin
$is_preorder = get_field('is_preorder');

if($is_preorder && "not yet passed deadline")
return true;
else
return false;
}

我不只是想禁用 add_to_cart 按钮,我还想禁用该功能(如果用户尝试通过在 url 中硬编码添加产品,应该提示错误)。
我该如何处理?

============================================= ============================

这是我的最终代码:

add_filter('woocommerce_is_purchasable', 'preorder_is_purchasable', 10, 2);

function preorder_is_purchasable( $is_purchasable, $object ) {

// this is a field added using 'Advance Custom Fields' plugin
$is_preorder = get_field('is_preorder', $object->id);

// if product is Pre-Order
if($is_preorder)
{
$today = date('Ymd');

// another field added using 'Advance Custom Fields' plugin
$preorder_deadline = get_field('preorder_deadline', $object->id);

if($today <= $preorder_deadline) // if not yet pass deadline
return true;
else
return false;
}
else
return $is_purchasable; // normal

最佳答案

2019 年更新:请参阅 dev_masta answer当今正确的解决方案。


不确定它是否能解决问题,因为这必须在您自己的自定义设置上进行测试。但是你使用的 get_field 是错误的:如果它没有在循环中使用,you should provide the post ID .

分析过滤器 woocommerce_is_purchasable,我们看到 it takes two parameters 、一个 bool 值 (is_purchasable) 和一个对象 (WC_Product)。

试试这个:

add_filter('woocommerce_is_purchasable', 'preorder_is_purchasable', 10, 2);

function preorder_is_purchasable( $is_purchasable, $object ) {

// this is a field added using 'Advance Custom Fields' plugin
$is_preorder = get_field('is_preorder', $object->id);

if($is_preorder && $is_purchasable)
return true;
else
return false;
}

关于php - 修改 WooCommerce Is_Purchasable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259052/

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