抱歉,无法购买此产品。 Woocommerce

Sorry, this product cannot be purchased. Woocommerce

我使用 ACF wordpress 插件创建了一个高级自定义字段,以检查该产品是否在本月有货。我正在使用的代码在下面但是当它确实可以指向它显示添加到购物车按钮的位置时如果该产品在该月有货则显示消息。

现在的问题是当我点击添加到购物车时可以购买产品,它说 "Sorry, this product cannot be purchased." 我找不到问题所在。

add_filter('woocommerce_is_purchasable', 'woocommerce_is_purchasable_filter_callback', 10, 2 );
function woocommerce_is_purchasable_filter_callback( $purchasable, $product ) {
    $months      = (array) get_field('availability');
    $purchasable = in_array( date('F'), $months ) ? $purchasable : false;

    return $purchasable;
}

add_action( 'woocommerce_single_product_summary', 'unavailable_product_display_message', 20 );
function unavailable_product_display_message() {
    global $product;

    if(! $product->is_purchasable() ){
        echo '<p style="color:#e00000;">' . __("This product is currently unavailable.") . '</p>';
    }
}

尝试更改这行代码:

$months = (array) get_field('availability');

至:

$months = (array) get_field('availability', $product->get_id());

get_field 函数不知道从哪个产品中获取,所以这将是一个空数组。发生这种情况时,变量 $purchasable 将始终为 false。