如何使用PHP代码标记产品特色WooCommerce

dz6r00yl  于 2023-03-16  发布在  PHP
关注(0)|答案(2)|浏览(151)

我想用代码标记产品特征ID
我试过这个代码,但不工作

// Your Product ID
$product_id   = 43706;
$ecd_product  = new WC_Product( $product_id );
if( $ecd_product->exists() ){
    $ecd_product->set_featured( true );
    $ecd_product->save();
}

我试过了但没成功

$product_id   = 43706;
$ecd_product  = new WC_Product( $product_id );
if( $ecd_product->exists() ){
    update_post_meta( $ecd_product->id, '_featured', 'yes' );
}
vsnjm48y

vsnjm48y1#

你可以使用update_post_ meta函数将产品发布的meta_key _featured更新为yes值。

$product_id = 123; // Replace with the ID of your product
$featured = 'yes'; // Set the featured value to yes

// Update the product meta to mark it as featured
update_post_meta( $product_id, '_featured', $featured );

您可以将这段代码添加到主题的functions.php文件中,或者创建一个插件来添加这一功能,您也可以使用保存_post操作钩子在商品保存或更新时自动将其标记为特色商品:

function mark_product_featured( $post_id ) {
    if ( get_post_type( $post_id ) === 'product' ) {
        update_post_meta( $post_id, '_featured', 'yes' );
    }
}
add_action( 'save_post', 'mark_product_featured' );

享受编码!

jchrr9hc

jchrr9hc2#

上面的代码片段是正确的-

function modify_wc_products_callback() {
    // Your Product ID
    $product_id   = 43706;
    $ecd_product  = new WC_Product( $product_id );
   
    if( $ecd_product->exists() ) {
        $ecd_product->set_featured( true );
        $ecd_product->save();
    }
}
add_action( 'init', 'modify_wc_products_callback' );

它应该完美地工作,使产品作为特色。但在你的情况下,我猜你是在错误的地方调用这个片段,挂钩或在初始化WC产品类功能。请分享您的确切代码库,以进一步帮助。

相关问题