Добавление раздела «Заказы по категориям» на странице «Моя учетная запись» в WooCommerce - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь создать новую вкладку в разделе «Моя учетная запись» WooCommerce. Новая вкладка предназначена для отображения заказов на товары для товаров в определенной категории. В WooCommerce я создал несколько продуктов и добавил их в категорию «Бронирование». Я бы хотел, чтобы новые заказы на продукты "Бронирования" появлялись только на новой вкладке. Все остальные заказы должны отображаться на обычной вкладке «Заказы».

Witin массив $ filters Я попробовал следующее, чтобы отфильтровать только продукты бронирования:

    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'operator' => 'IN',
            'terms'    => array('bookings'),
        ),
    )

Но это не приводит к отображению контента.

Это то, что у меня пока есть в functions.php:

//Register new endpoints to use inside My Account page
function my_account_new_endpoints() {
    add_rewrite_endpoint( 'bookings', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'my_account_new_endpoints' );

//Get new endpoint content
function bookings_endpoint_content() {
$filters = array(
    'post_status' => 'any',
    'post_type' => 'shop_order',
    'posts_per_page' => 200,
    'paged' => 1,
    'orderby' => 'modified',
    'order' => 'ASC'
);

$loop = new WP_Query($filters);

while ($loop->have_posts()) {
    $loop->the_post();
    $order = new WC_Order($loop->post->ID);

    foreach ($order->get_items() as $key => $lineItem) {

       echo '<br>' . 'Product Name : ' . $lineItem['name'] . '<br>';
       echo 'Product ID : ' . $lineItem['product_id'] . '<br>';
       echo 'subtotal : ' . $lineItem['subtotal'] . '<br>';
       if ($lineItem['variation_id']) {
           echo 'Product Type : Variable Product' . '<br>';
       } else {
           echo 'Product Type : Simple Product' . '<br>';
       }
    }
}
}
add_action( 'woocommerce_account_bookings_endpoint', 'bookings_endpoint_content' );

// Edit my account menu order
 function my_account_menu_order() {
    $menuOrder = array(
    'orders'             => __( 'Your Orders', 'woocommerce' ),
    'bookings'             => __( 'Bookings', 'woocommerce' ),
    'downloads'          => __( 'Download', 'woocommerce' ),
    'edit-address'       => __( 'Addresses', 'woocommerce' ),
    'edit-account'      => __( 'Account Details', 'woocommerce' ),
    'customer-logout'    => __( 'Logout', 'woocommerce' ),
    'dashboard'          => __( 'Dashboard', 'woocommerce' )
);
return $menuOrder;
 }
 add_filter ( 'woocommerce_account_menu_items', 'my_account_menu_order' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...