在woocommerce中查看订单的永久链接错误


Getting wrong permalink for view order in woocommerce

我为my-orders.php制作了一个自定义模板,当我添加链接时,为了显示订单的规格,我得到

查看订单/?Order ="订单号"作为永久链接。

代码补充道:

?><tr class="order">
  <td class="order-number">
  <a href="<?php echo $order->get_view_order_url(); ?>">
  <?php echo $order->get_order_number(); ?>
 </a>
 </td>

我也发现了这个问题。

我花了一些时间试图操纵woo commerce 2.1,直到我意识到它甚至没有被使用。

相反,我的主题实际上有它自己的帐户页面,这与导致问题的2.1不工作。因此,我在主题中找到了一个名为my-orders.php的文件,并不得不将我不想要的部分抽出:

错误代码是由

引起的
<a href="<?php echo esc_url( add_query_arg('order', $order->id, get_permalink( woocommerce_get_page_id( 'view_order' ) ) ) ); ?>">

,我只是把恼人的不兼容2.1位:

<a href="<?php echo str_replace('?order=','',esc_url( add_query_arg('order', $order->id, get_permalink( woocommerce_get_page_id( 'view_order' ) ) ) ) ); ?>">

我需要在文件

的两个地方做这个修改

我只是在拉旧风格的url:

str_replace('?order=','',  OFFENDING STRING )

你应该在WordPress设置中检查你的永久链接结构。如果你的设置正确,$order->get_view_order_url();会给你一个漂亮的perma结构。