添加链接到订单详细信息页面上的单个产品页面的按钮

时间:2018-09-01 作者:jasaweb

我写了一个函数代码。php,所以当客户单击订单详细信息页面上的按钮时,会重定向到产品页面并查看他们购买的产品的选项卡。但作为一名新手,我无法获得产品页面和评论选项卡的完整链接。单击下面的代码只会http://mywebsite.com/shop/

add_action(\'woocommerce_order_details_after_order_table\', \'tl_review_for_order\');
function tl_review_for_order() { ?>
<a class="button-3" href="<?php echo get_permalink( wc_get_page_id( \'shop\' ) ) ; ?>"><?php _e( \'REVIEW\', \'woocommerce\' ) ?></a>
<?php
}
所以我需要的是,当点击按钮时,应该转到产品页面的完整链接+评论,如http://mywebsite.com/shop/product-name/#tab-reviews

有人能解决这个问题吗?谢谢

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

这个woocommerce_order_details_after_order_table 钩子接收WC_Order 对象作为$order 论点这意味着您可以使用$order->get_items().

将返回WC_Order_Items、 从中,您可以获得第一个项目的关联产品,您可以使用该产品获取其永久链接,您可以将其附加到#tab-reviews:

function tl_review_for_order( $order ) {
    // Get the order items.
    $order_items = $order->get_items();

    // Get the first or only order item.
    $order_item = reset( $order_items );

    // Get the product object from the order item.
    $product = $order_item->get_product();

    // Make sure the product still exists.
    if ( $product ) {
        // Output link using WooCommerce function for getting a product\'s link.
        printf(
            \'<a class="button-3" href="%1$s#tab-reviews">%2$s</a>\',
            esc_url( $product->get_permalink() ),
            __( \'Review\', \'woocommerce\' )
        ); 
    }
}
add_action( \'woocommerce_order_details_after_order_table\', \'tl_review_for_order\' );
注意,我使用$product->get_permalink() 获取URL,而不仅仅是get_permalink(). 这是为了在WooCommerce产品不再存储为帖子时保持转发兼容性。一些not far off.

结束

相关推荐

Change Menu Order

我读过一篇文章,试图帮助某人在Word Press中重新排列菜单。我对这一切都是陌生的,很快就感到非常沮丧。这里给出的建议与我在平台上看到的不匹配。作为一个直接的例子,一个新用户询问如何重新排列菜单,并回答说,它们可能进入“外观”,然后进入“菜单”,然后“简单地”拖动并按照他们认为合适的顺序重新定位。但是,当我这样做时,没有明显的拖动功能。页面的外观是灰色和沉闷的,在我试图创建的菜单旁边有一些复选框。我错过了什么?!我真的希望这些平台更加直观和用户友好。。。