从woocommerce的“订单详细信息”页面中提取产品URL的功能

时间:2019-07-09 20:18:00

标签: php wordpress woocommerce woocommerce-bookings

我正在使用woocommerce预订插件,我正在为已经预订了时间段的客户寻找解决方案,以便能够为他们的预订增加更多时间。从理论上讲,如果他们能够编辑预订并支付差额,那将是很好的选择,但是从我的判断中可以看出,这将需要大量我无法执行的自定义代码。因此,作为替代解决方案,也许我可以在/my-account/booking-details/OrderID/的客户的订单详细信息页面上创建一个唯一按钮,使他们可以根据该订单的产品转到特定产品。

我已经在/order-details.php文件上创建了一个名为woocommerce_extra_time_button的自定义钩子,并将以下代码添加到了主题的function.php文件中,但是我无法按我的意愿拉出产品URL。

add_action( 'woocommerce_extra_time_button', 'booking_extratime_button', 10, 3 );
function booking_extratime_button( $item_id, $item ){
    $url = get_permalink( $item['product_id'] ) ;

    return '<a href="'. $url .'">'. $item_id .'</a>'; 
}

1 个答案:

答案 0 :(得分:0)

您可以从当前用户的订单中找到产品详细信息,并在自定义挂钩中使用。例如:

$order = wc_get_order( $order_id );
$items = $order->get_items()
foreach ( $items as $item ) {
    $product_name = $item->get_name();
    $product_id = $item->get_product_id();
    $product_variation_id = $item->get_variation_id();
}