我正在努力实施自己的预订系统,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