我正在尝试在woocommerce中创建一个标签版“我的帐户”。 我使用bootstrap css在php中构建了我的页面并包含了wordpress页眉和页脚,因此页面正确加载。 标签显示正如我所知,我在woocommerce中遇到端点网址问题:
- 'edit-address'
- 'view-order'
这些端点是动态生成的并附加到网址:www.site-name.com/my-account/edit-address 这是函数调用(在文件.plugins / woocommerce / myaccount / form-edit-address.php中):
<a href="<?php echo wc_get_endpoint_url( 'edit-address', $name ); ?>
我在我的标签页中包含了“我的地址”,这表示没问题。但是,编辑运送和帐单地址的链接是通过上述对端点的调用生成的。单击链接时,页面无法加载并返回404错误。
我的自定义php页面基本上是www.site-name.com/account/edit-address
问题是:
我猜这个问题是因为我的网页是外部php页面而不是用wp数据库存储的?
有没有办法可以自定义端点网址,以便正确附加并加载页面?
链接到我网站上的页面:www.thecookerytutor dot co dot uk/account
Origional woocommerce my-account page: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 :(得分:0)
WooCommerce是WordPress的一个插件,你不能在没有WordPress的情况下使用它...例如/my-account/edit-address/
,my-account
实际上就是你正在呈现的页面和edit-address
只是一个变量。已将edit-address
添加为my-account
的端点。您需要为account
执行相同操作。
您应该了解what endpoints are。
关于此的其他想法。如果您确实想使用account
而不是my-account
,请查看您的网页以查看&#34;我的帐户&#34;并改变它的固定链接。您还可以创建另一个可以使用account
永久链接的页面。然后在您的WooCommerce中使用该页面&gt;设置&gt;帐户标签&gt;我的帐户页面。
如果你有一些自定义的PHP代码,你可以将你的woocommerce插件中的模板复制到你的主题文件夹,然后编辑你需要的文件。阅读Template Structure + Overriding Templates via a Theme。
如果我没有解决您的问题,请在下面发表评论。