当前位置: 首页 > 知识库问答 >
问题:

将基于ACF字段的自定义“添加到购物车”按钮添加到WooCommerce单一产品页面

刘乐童
2023-03-14

我想添加一个addtionall自定义"添加到购物车按钮"上的单个产品页面有条件地使用此代码:

add_action( 'woocommerce_product_meta_end' , 'add_to_cart_custom', 10 ); 

function add_to_cart_custom() {

    $mamut = get_field('mamut');
    $stockstatus = get_post_meta( get_the_ID(), '_stock_status', true );
    $id = $product->get_id();
    

    if ($mamut) {
    echo 'Send request';
    
}elseif(!$mamut and $stockstatus === 'outofstock'){

        echo  'Send request - Mamut';

}elseif(!$mamut and $stockstatus === "instock" ) {
        
        echo 'Add to cart';

   }
}

此变量是来自ACF的字段$mamut=get_字段('mamut')

然而,当我把这段代码放入我的functions.php文件时,单个产品页面崩溃了

我使用的主题二十十九和元素临。

我试图删除操作,然后添加不同的操作,但它不起作用。此外,我试图使短代码,并使用元素输入它们,但随后短代码显示为文本。


共有1个答案

公西嘉玉
2023-03-14
  • 您正在使用$product-

所以你得到

function add_to_cart_custom() {
    global $product;
    
    // Is a WC product
    if ( is_a( $product, 'WC_Product' ) ) {
        // Get field - function from ACF plugin, plugin must be actived for this
        $mamut = get_field( 'mamut' );
        
        // Get stock status
        $stock_status = $product->get_stock_status();
        
        // If value exists
        if ( $mamut ) {
            echo 'Send request';
        } elseif( ! $mamut && $stock_status === 'outofstock' ) {
            echo 'Send request - Mamut';
        } elseif( ! $mamut && $stock_status === 'instock' ) {
            echo 'Add to cart';
        }
    }
}
add_action( 'woocommerce_product_meta_end' , 'add_to_cart_custom', 10, 0 ); 

 类似资料: