我有一个简单的问题。当您下订单时,此订单无效,将显示一条消息,其中包含无效的订单文本和指向帐户页面的链接。经过长时间的搜索,我在代码中找到了该部分:
/**
* View order page.
*
* @param int $order_id Order ID.
*/
public static function view_order( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! current_user_can( 'view_order', $order_id ) ) {
echo '<div class="woocommerce-error">' . esc_html__( 'Invalid order.', 'woocommerce' ) . ' <a href="' . esc_url( wc_get_page_permalink( 'myaccount' ) ) . '" class="wc-forward">' . esc_html__( 'My account', 'woocommerce' ) . '</a></div>';
return;
}
// Backwards compatibility.
$status = new stdClass();
$status->name = wc_get_order_status_name( $order->get_status() );
wc_get_template(
'myaccount/view-order.php', array(
'status' => $status, // @deprecated 2.2.
'order' => wc_get_order( $order_id ),
'order_id' => $order_id,
)
);
}
这可以在文件class-wc-shortcode-my-account.php
那么可以安全删除消息中的链接吗?因为我只想要这里的消息。
答案 0 :(得分:1)
remove_action('woocommerce_account_view-order_endpoint', 'woocommerce_account_view_order');
add_action('woocommerce_account_view-order_endpoint', 'new_view_order');
function new_view_order($order_id) {
$order = wc_get_order($order_id);
if (!current_user_can('view_order', $order_id)) {
echo '<div class="woocommerce-error">' . esc_html__('Invalid order.', 'woocommerce') . '</div>';
return;
}
// Backwards compatibility.
$status = new stdClass();
$status->name = wc_get_order_status_name($order->get_status());
wc_get_template(
'myaccount/view-order.php', array(
'status' => $status, // @deprecated 2.2.
'order' => wc_get_order($order_id),
'order_id' => $order_id,
)
);
}
尝试一下