将自定义函数添加到WooCommerce

时间:2015-01-27 09:54:13

标签: wordpress woocommerce

这里有两个问题。

下面是WooCommerce wc-order-functions.php中的一个函数,我发现它的工作方式与我需要的几乎相似。

function wc_get_order_id_by_order_key( $order_key ) {
    global $wpdb;

    // Faster than get_posts()
    $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_key = '_order_key' AND meta_value = %s", $order_key ) );

    return $order_id;
}

这会返回$order_id,但我希望获得$order_key,这样我就可以构建在买方点击“下订单”后生成的网址。结帐页面上的按钮,例如domain.com/checkout/order-received/2316/?key=wc_order_54c7142660e24

wc_order_54c7142660e24$order_id2316$order_key

我知道下面的SQL命令从数据库获取我想要的值:

function wc_get_order_key_by_order_id( $order_id ) {
    global $wpdb;

    // Faster than get_posts()
    $order_key = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key = '_order_key' AND post_id = %s", $order_id ) );

    return $order_key;
}

但是我不确定如何将过滤器挂钩到wordpress functions.php所以这是我的第一个问题。

第二个问题是我一直在寻找可能负责为$order_key生成meta_value的函数,但似乎无法找到它,很高兴知道它的工作原理。我认为第一种方式有点多余,因为我正在寻找的功能已经存在,但似乎无法找到它。

1 个答案:

答案 0 :(得分:0)

尝试将此添加到您需要该链接的woocommerce模板文件中:

echo get_site_url().'/checkout/order-received/'.$order->id.'&key='.$order->order_key;