P粉7258276862023-08-28 21:32:12
您可以透過以下兩種方式來實現:
在背景設定中放置空值
#
前往WooCommerce > 設定 > 高級,然後在帳戶端點輸入框中,您可以刪除特定端點的值並儲存空值。
透過這種方式,您將不會在帳戶頁面上看到端點頁面或選單項,如果您造訪該URL,您將在造訪的URL上看到主頁。
取消設定查詢變數
您可以使用過濾器鉤子取消設定查詢變數。
https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-query.php#L85
在第85
行,您可以找到具有所有查詢變數的函數。
https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-query.php#L232
而在第232行,您可以找到取得查詢變數的函數,它也具有篩選器。您可以使用篩選器並取消設定所需的端點。
如果您使用此方法,您還需要從導覽選單項目中取消設定該項,您還需要重新儲存固定連結設定。
然後,如果您造訪該端點的URL,您將在造訪的URL上看到主頁。
在這兩種情況下,您都不會看到404頁面。
P粉2176290092023-08-28 15:42:08
答案是:是的,有!我的鉤子寫錯了。我現在使用了wp鉤。這樣合法嗎?
function redirect_forbidden_access(){ $current_endpoint = WC()->query->get_current_endpoint(); if($current_endpoint == "payment-methods" || $current_endpoint == "add-payment-method" || $current_endpoint == "edit-payment-method" || $current_endpoint == "[custom-endpoint]") { wp_redirect(wc_get_account_endpoint_url('dashboard')); } } add_action('wp', 'redirect_forbidden_access');
這就是解決方法。