亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

保存或更新了 WooCommerce 庫存的哪些掛鉤

保存或更新了 WooCommerce 庫存的哪些掛鉤

PHP
互換的青春 2023-09-08 10:16:20
我正在創建一個活動票務 WordPress 主題,并且正在使用 WooCommerce 和高級自定義字段(ACF)插件。我想更新一個名為事件的自定義帖子類型。具有特定門票的庫存。這樣我的客戶就不需要查看 woo-commerce 產品頁面,而只需打開一個“活動”我嘗試使用該update_post_meta掛鉤,但只有當管理員在管理工具中更新產品時才有效。不是新訂單。function sync_product_stock( $meta_id, $post_id, $meta_key, $meta_value ) {    $postType = get_post_type( $post_id );    if ($postType  == 'product' ) {        if ( $meta_key == '_stock' ) {            $product = wc_get_product( $post_id );            $eventId = $product->get_attribute( 'event_id' );            $productName = $product->get_name();            if ($productName.include('Early Bird')) {                update_field( 'event_early_bird_group_event_early_bird_amount_of_tickets', $meta_value, $eventId );            } else if ($productName.include('Regular')) {                update_field( 'event_regular_group_event_regular_amount_of_tickets', $meta_value, $eventId );            } else if ($productName.include('Member')) {                // nothing needs to be updated            }        }    }}add_action( 'updated_post_meta', 'sync_product_stock', 10, 4);_stock當字段更新時我如何收到通知?(我不想自己處理庫存
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

您的代碼中有一些錯誤。使用 woocommerce 掛鉤嘗試以下操作:


// On processed update product stock event

add_action( 'woocommerce_updated_product_stock', 'wc_updated_product_stock_callback' );

// On admin single product creation/update

add_action( 'woocommerce_process_product_meta', 'wc_updated_product_stock_callback' );

// On admin single product variation creation/update

add_action( 'woocommerce_save_product_variation', 'wc_updated_product_stock_callback' );

function wc_updated_product_stock_callback( $product_id ) {

    // get an instance of the WC_Product Object

    $product      = wc_get_product( $product_id );


    $stock_qty    = $product->get_stock_quantity();

    $event_id     = $product->get_attribute('event_id');

    $product_name = $product->get_name();


    if ( strpos($product_name, 'Early Bird') !== false ) {

        update_field( 'event_early_bird_group_event_early_bird_amount_of_tickets', $stock_qty, $event_id );

    } elseif ( strpos($product_name, 'Regular') !== false ) {

        update_field( 'event_regular_group_event_regular_amount_of_tickets', $stock_qty, $event_id );

    } elseif ( strpos($product_name, 'Member') !== false ) {

        // nothing needs to be updated

    }

}

代碼位于活動子主題(或活動主題)的 function.php 文件中。它應該有效。


查看完整回答
反對 回復 2023-09-08
  • 1 回答
  • 0 關注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號