亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅當項目屬于特定類別時顯示 WooCommerce 我的帳戶訂單

僅當項目屬于特定類別時顯示 WooCommerce 我的帳戶訂單

PHP
胡子哥哥 2023-12-15 15:01:53
因此,我在 WooCoommerce 的 my account/my-orders.php 模板文件上構建一個自定義部分,以僅顯示“課程”類別下的任何產品的訂單歷史記錄。我目前有這個:<?php$my_orders_columns = apply_filters(    'woocommerce_my_account_my_orders_columns',    array(        'order-number'  => esc_html__( 'Order', 'woocommerce' ),        'order-date'    => esc_html__( 'Date', 'woocommerce' ),        'order-status'  => esc_html__( 'Status', 'woocommerce' ),        'order-total'   => esc_html__( 'Total', 'woocommerce' ),        'order-actions' => '&nbsp;',    ));$customer_orders = get_posts(    apply_filters(        'woocommerce_my_account_my_orders_query',        array(            'numberposts' => $order_count,            'meta_key'    => '_customer_user',            'meta_value'  => get_current_user_id(),            'post_type'   => wc_get_order_types( 'view-orders' ),            'post_status' => array_keys( wc_get_order_statuses() ),        )    ));if ( $customer_orders ) : ?>    <?php if(is_product_category('course')) { ?>            <section class='courseHistory'>                <div class='grid-container full'>                     <?php                        foreach ( $customer_orders as $customer_order ) :                            $order      = wc_get_order( $customer_order ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited                            $item_count = $order->get_item_count();                        ?>                    <div class='grid-x'>                              <!-- Course loop to go here -->                                <?php foreach ( $my_orders_columns as $column_id => $column_name ) : ?>                            <div class='large-12 cell marB20 shadow'>                        <div class='grid-x'>這是按照我想要的方式循環拉取訂單歷史記錄,但我已經在其周圍添加了條件if is_product_category('course'),但它沒有拉出任何事情都通過。感覺我很接近但錯過了什么?
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您的代碼中存在一些小錯誤...要檢查產品類別,您需要使用?has_terms()?Wordpress 條件函數檢查訂單項目(每個訂單),如下所示:< /span>

<?php

$my_orders_columns = apply_filters(

? ? 'woocommerce_my_account_my_orders_columns',

? ? array(

? ? ? ? 'order-number'? => esc_html__( 'Order', 'woocommerce' ),

? ? ? ? 'order-date'? ? => esc_html__( 'Date', 'woocommerce' ),

? ? ? ? 'order-status'? => esc_html__( 'Status', 'woocommerce' ),

? ? ? ? 'order-total'? ?=> esc_html__( 'Total', 'woocommerce' ),

? ? ? ? 'order-actions' => '&nbsp;',

? ? )

);


$customer_orders = get_posts(

? ? apply_filters(

? ? ? ? 'woocommerce_my_account_my_orders_query',

? ? ? ? array(

? ? ? ? ? ? 'numberposts' => $order_count,

? ? ? ? ? ? 'meta_key'? ? => '_customer_user',

? ? ? ? ? ? 'meta_value'? => get_current_user_id(),

? ? ? ? ? ? 'post_type'? ?=> wc_get_order_types( 'view-orders' ),

? ? ? ? ? ? 'post_status' => array_keys( wc_get_order_statuses() ),

? ? ? ? )

? ? )

);


$product_category_terms = array('course'); // <== Here the defined product category term(s)


if ( $customer_orders ) : ?>

? ? <section class='courseHistory'>

? ? ? ? <div class='grid-container full'>

? ? ? ? ? ? <?php foreach ( $customer_orders as $customer_order ) :

? ? ? ? ? ? ? ? $order? ? ? = wc_get_order( $customer_order ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited

? ? ? ? ? ? ? ? $item_count = $order->get_item_count();


? ? ? ? ? ? ? ? $category_found = false; // Initializing


? ? ? ? ? ? ? ? // Loop through order items

? ? ? ? ? ? ? ? foreach ( $order->get_items() as $item ) {

? ? ? ? ? ? ? ? ? ? if ( has_term( $product_category_terms, 'product_cat', $item->get_product_id() ) ) {

? ? ? ? ? ? ? ? ? ? ? ? $category_found = true;

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? // If the product category is not found in order items we jump to next order

? ? ? ? ? ? ? ? if ( ! $category_found ) continue;

? ? ? ? ? ? ?>

? ? ? ? ? ? <div class='grid-x'>

? ? ? ? ? ? <!-- Course loop to go here -->

? ? ? ? ? ? <?php foreach ( $my_orders_columns as $column_id => $column_name ) : ?>

? ? ? ? ? ? ? ? <div class='large-12 cell marB20 shadow'>

? ? ? ? ? ? ? ? ? ? <div class='grid-x'>

? ? ? ? ? ? ? ? ? ? ? ? <div class='small-12 medium-12 large-3 cell courseImg'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Course image here -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? <img src="<?php echo get_template_directory_uri(); ?>/assets/images/course.png"/>

? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? <div class='small-12 medium-12 large-9 cell courseInfo whiteBg'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='grid-x grid-margin-x align-middle'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='small-12 medium-12 large-7 cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='grid-x'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-5 cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='bold title'>Course name:</p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-auto cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Course title here -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='noweight title'><?php echo the_dramatist_get_order_prod_name( $order ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='grid-x'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-5 cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='bold title'><?php esc_html_e("Date of course:", "woocommerce"); ?></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-auto cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Date of course from calendar here -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='noweight title'><?php _e("21.01.21", "woocommerce"); ?></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='grid-x'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-5 cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='bold title'><?php esc_html_e("Paid on:", "woocommerce"); ?></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-auto cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Purchase date here -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='noweight title'><time datetime="<?php esc_attr_e( $order->get_date_created()->date( 'c' ) ); ?>"><?php? esc_html_e( wc_format_datetime( $order->get_date_created() ) ); ?></time></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='grid-x'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-5 cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='bold title'><?php esc_html_e("Status:", "woocommerce"); ?></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='large-auto cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Purchase status here -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p class='noweight title'><?php esc_html_e( wc_get_order_status_name( $order->get_status() ) ); ?></p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <div class='small-12 medium-12 large-5 cell'>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Link to course to go through to shop info page? -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <a class='orangeB' href="<?php the_permalink(); ?>"><?php esc_html_e("View course overview", "woocommerce"); ?></a>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- Link to PPE for this course here. I've done it so each PPE product will have a course sub category

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? that can be assigned to it to make filtering easier. PPE Cat > Course PPE sub cat -->

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <a class='blackB marT20' href="<?php the_permalink(); ?>"><?php esc_html_e("Get PPE for this course", "woocommerce"); ?></a>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? <!-- Course loop end -->

? ? ? ? ? ? ? ? <?php endforeach; ?>

? ? ? ? ? ? </div>

? ? ? ? ? ? <!-- Orders loop end -->

? ? ? ? ? ? <?php endforeach; ?>

? ? ? ? </div>

? ? </section>

<?php endif; ?>

它應該有效。


查看完整回答
反對 回復 2023-12-15
  • 1 回答
  • 0 關注
  • 184 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號