WooCommerce:出售时将特色产品设置为假

我正在尝试在我的 WooCommerce 上添加一个片段,以在产品出售时将其从特色中删除。


我尝试了下面的代码,但它似乎不起作用。任何援助将不胜感激。


add_action('woocommerce_order_status_processing', 'order_status_processing_featured_products', 10, 2);

function order_status_processing_featured_products( $order_id, $order ) {

    foreach ( $order->get_items() as $item_id => $item ) {

        $product = $item->get_product();

        $product->set_featured(false);

        $product->save();

    }

}


HUH函数
浏览 68回答 1
1回答

慕哥6287543

那是因为您使用的钩子并非用于创建的每个订单,始终使用的钩子是woocommerce_thankyou.所以你得到:(通过附加代码中的注释进行解释)function action_woocommerce_thankyou( $order_id ) {    // Get $order object    $order = wc_get_order( $order_id );        // Loop through order items    foreach ( $order->get_items() as $item_key => $item ) {        // The WC_Product object        $product = wc_get_product( $item['product_id'] );                    // Instanceof        if ( $product instanceof WC_Product ) {            // True            if ( $product->get_featured() ) {                               // Set featured false                $product->set_featured( false );                                // Save                $product->save();            }        }    }}add_action( 'woocommerce_thankyou', 'action_woocommerce_thankyou', 10, 1 );
打开App,查看更多内容
随时随地看视频慕课网APP