2016-01-21 92 views
0

我正嘗試在woocommerce中創建「我的帳戶」的選項卡式版本。 我已經在php中使用bootstrap css構建了我的頁面,幷包含了wordpress頁眉和頁腳,以便頁面正確加載。 如預期通過我有在woocommerce端點網址的問題中的選項卡顯示:在woocommerce中自定義端點網址

- 'edit-address' 

- 'view-order' 

這些端點是動態生成的和附加到URL:www.site-name.com/my-account/edit -address 這裏的函數調用(在文件.plugins/woocommerce /我的帳戶/表單編輯address.php):

<a href="<?php echo wc_get_endpoint_url('edit-address', $name ); ?> 

我在dispays確定我的選項卡頁面包括 '我的-地址'。但是,編輯運輸和帳單地址的鏈接是通過上述對端點的呼叫生成的。點擊鏈接時,頁面無法加載並返回404錯誤。

我的自定義PHP頁面基本上www.site-name.com/account/edit-address

的問題是:

  • 「編輯地址頁面內容不加載和我得到一個404錯誤

我猜這個問題是由於我的網頁是外部的PHP頁面,而不是與WP數據庫存儲?

有沒有一種方法可以自定義端點URL,以便正確添加並加載頁面?

鏈接到網頁上我的網站:www.thecookerytutor dot co dot uk/account

原始woocommerce我的賬戶頁面:www.thecookerytutor dot co dot uk/my-account (您需要創建一個登錄,查看這兩個頁面)

它把我難住了好幾天! 在此先感謝。

代碼如許我自定義的PHP頁面上我的地址標籤...

echo "<div id = 'edit-addresses' class='tab-pane fade'>"; 
       echo "<div id = 'content' class = 'page col-full'>"; 
       echo "<section id = 'main' class = 'col-left'>"; 
       echo "<BR>"; 
         include "my-address.php"; 
       echo "</section>"; 
      echo "</div>"; 
    echo "</div>";` 

正如你可以看到,我包括加載地址(我已經複製到本地文件夾中的WC頁) 這裏是edit-address.php的內容(我已經複製到我的本地文件夾並添加了wp頭文件)。在頁面加載的頭,而是獲取地址的功能,在線路出現故障時50

<?php 

define('WP_USE_THEMES', false); 

require('../wp-blog-header.php'); 

add_filter('wp_title', 'wp_title_so_18381106', 10, 3); 
function wp_title_so_18381106($title, $sep, $seplocation) 
{ 
    return 'Your Account | '; 
} 

get_header(); 
?> 
<?php 
/** 
* Edit address form 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  2.1.0 
*/ 

if (! defined('ABSPATH')) { 
    exit; // Exit if accessed directly 
} 

global $current_user; 

$page_title = ($load_address === 'billing') ? __('Billing Address', 'woocommerce') : __('Shipping Address', 'woocommerce'); 

get_currentuserinfo(); 

?> 

<?php wc_print_notices(); ?> 

<?php //if (! $load_address) : ?> 

    <?php //wc_get_template('myaccount/my-address.php'); ?> 

<?php //else : ?> 
    <form method="post"> 

     <h3><?php echo apply_filters('woocommerce_my_account_edit_address_title', $page_title); ?></h3> 

     <?php do_action("woocommerce_before_edit_address_form_{$load_address}"); ?> 

/未能這裏加載/

<?php foreach ($address as $key => $field) : ?> 

       <?php woocommerce_form_field($key, $field, ! empty($_POST[ $key ]) ? wc_clean($_POST[ $key ]) : $field['value']); ?> 

      <?php endforeach; ?> 

      <?php do_action("woocommerce_after_edit_address_form_{$load_address}"); ?> 

      <p> 
       <input type="submit" class="button" name="save_address" value="<?php _e('Save Address', 'woocommerce'); ?>" /> 
       <?php wp_nonce_field('woocommerce-edit_address'); ?> 
       <input type="hidden" name="action" value="edit_address" /> 
      </p> 

     </form> 

    <?php //endif; ?> 
+0

你得到了什麼網址?並應該有什麼正確的網址? – Reigel

+0

該網址現在正確追加:www.site-name.com/account/edit-address/billing,但我仍然收到404錯誤。 – user3464091

+0

所以現在沒有問題了? – Reigel

回答

0

WooCommerce是WordPress的插件,你不能用它沒有WordPress ...例如/my-account/edit-address/my-account實際上是你正在渲染的頁面,而edit-address只是一個變量。 edit-address作爲端點被添加到my-account。你需要爲你的account做同樣的事情。

你應該知道what endpoints are

對此的其他想法。如果您確實想要使用account而不是my-account,請查看您的「我的帳戶」頁面並更改它的固定鏈接。您也可以創建另一個頁面,在其固定鏈接中使用account。然後在您的WooCommerce>設置>帳戶標籤>我的帳戶頁面中使用該頁面。

如果您有一些自定義的php代碼,您可以將模板從woocommerce插件複製到您的主題文件夾並編輯您需要的文件。閱讀Template Structure + Overriding Templates via a Theme

如果我沒有解決您的問題,請在下面註釋。

+0

謝謝。正如我在我原來的問題中說的,我包含Wordpress的模板頁眉和頁腳,所以自定義的PHP頁面按預期加載。除了終點之外,一切都很好,正如你所說的,它是一個變量,並不指向任何頁面。我需要的是從編輯地址獲取內容以加載地址而不是默認的地址。目前它正在給404頁面找不到錯誤。 – user3464091

+0

我不知道你是怎麼做到的。我不能建議更多。 – Reigel

+0

我已經更新了我的問題,並提供了一個鏈接到我的網站。如果你創建一個帳戶,我可以向你展示頁面行爲。感謝您的幫助@Reigel。 – user3464091