настроить URL-адреса конечных точек в WooCommerce

Я пытаюсь создать версию «Моя учетная запись» с вкладками в WooCommerce.
Я построил свои страницы в php с помощью начальной загрузки CSS и включил верхний и нижний колонтитулы wordpress, чтобы страница загружалась правильно.
Вкладки отображаются, как и ожидалось, у меня возникла проблема с URL-адресами конечной точки в woocommerce:

- 'edit-address'

- 'view-order'

Эти конечные точки генерируются динамически и добавляются к URL: 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

Проблема в:

  • Содержание страницы ‘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

Решение

WooCommerce это плагин для WordPress, вы не можете использовать его без WordPress … например /my-account/edit-address/, тот my-account на самом деле страница, которую вы рендеринг и edit-address это просто переменная. edit-address был добавлен в качестве конечной точки my-account, вам нужно сделать то же самое для вашего account,

Вы должны получить представление о что такое конечные точки.

Другие мысли по этому поводу. Если вы действительно хотите использовать account и не my-accountнайдите на своих страницах «Мой аккаунт» и измените его постоянную ссылку. Вы также можете создать другую страницу, которая может использовать account в этом постоянная ссылка. Затем используйте эту страницу в вашей WooCommerce> Настройки> вкладка Аккаунт> Страница моей учетной записи.

Если у вас есть несколько пользовательских php-кодов, вы можете просто скопировать шаблон из вашего плагина woocommerce в папку вашей темы и отредактировать нужный файл. Читать Структура шаблона + переопределение шаблонов через тему.

И если я не рассмотрел вашу проблему, прокомментируйте ниже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]