如何将产品信息传递给 woocommerce 插件?

Mar*_*uti 2 php wordpress woocommerce hook-woocommerce

我尝试开发一个 woocommerce 插件。我需要更改产品价格和产品供应情况

我正在使用 woocommerce_before_single_product 挂钩,但我不明白该挂钩如何将 id 产品传递给我的函数。

这是我的代码

add_action('woocommerce_before_single_product', 'call_ws_for_as400', 10 , 1);

function call_ws_for_as400() {

    $product = wc_get_product( $context['post'] -> ID );

    $id = $product->id;

    error_log($product);

    error_log($id);
}
Run Code Online (Sandbox Code Playgroud)

产品和id始终为空,为什么?

hel*_*ing 5

没有参数传递给woocommerce_before_single_product钩子:

do_action( 'woocommerce_before_single_product' );
Run Code Online (Sandbox Code Playgroud)

所以你需要使用全局$product

add_action('woocommerce_before_single_product', 'call_ws_for_as400');

function call_ws_for_as400() {
    global $product;
    $id = $product->get_id();
    error_log($product);
    error_log($id);
}
Run Code Online (Sandbox Code Playgroud)