2016-01-21 183 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