【问题标题】:woocommerce hook on thank you page not working [duplicate]谢谢页面上的woocommerce钩子不起作用[重复]
【发布时间】:2020-11-03 02:51:30
【问题描述】:

当我将此代码添加到 woocommerce 的thankyou.php 时,一切正常(当然没有钩子)。当我将它添加到我的子主题上的 function.php 时,它根本不起作用。

function lwb_test() {
foreach ( $order->get_items() as $item_id => $item ) {
    $product_id = $item->get_product_id();
    $order_id = $order->get_id();
    $new_product = new WC_Product( $product_id );  // create an object of WC_Product class

    $product_attribut = $new_product->get_attribute( 'pa_lieferfrequenz' );  // call get_attribute method
    //$product_attribut = '1week';
    $date = date('d-m-Y', strtotime("+ $product_attribut "));
    add_post_meta( $order_id, 'lwb_pickup_time_email_notification', $date );
}
}
add_action('woocommerce_thankyou', 'lwb_test');

【问题讨论】:

  • 请不要重复同样的问题……
  • 这不是重复的,这只是同一代码上的另一个问题......它与另一个问题无关......请重新打开
  • 抱歉,您添加到挂钩函数中的是相同的代码。

标签: wordpress woocommerce filter hook action


【解决方案1】:

你可以在 add_action 中使用你的函数,像这样。

add_action( 'woocommerce_thankyou', function( $order_id ){
    $order = new WC_Order( $order_id );
});

您可以将它与其他代码一起使用,但我认为仅使用 add_action 对您来说会更容易

add_action('woocommerce_thankyou', 'example', 10, 1);

function example($order_id) {
    $order = new WC_Order( $order_id );
}

【讨论】:

  • 你能告诉我区别吗,为什么当函数在 add_action 中时它会起作用?
  • 改变了我的答案,另一个例子是外部功能。它可以双向工作,你选择你想要的。在您的代码中,您正在创建一个回调函数,但您在该函数中缺少 $order_id,这就是它不起作用的原因。
猜你喜欢
  • 2018-11-05
  • 2021-10-16
  • 2014-09-26
  • 2018-12-08
  • 1970-01-01
  • 2021-06-12
  • 2019-01-04
  • 2022-11-03
  • 1970-01-01
相关资源
最近更新 更多