带有自定义内容的 WooCommerce 我的帐户自定义选项卡

问题描述 投票:0回答:0

请让我知道如何通过端点添加多个自定义菜单选项卡以及从数据库获得的结果?下面的代码有效,但只添加了一个菜单,而数据库中有 3 个结果,如图所示

function pa_custom_endpoint_keys() {
    global $wpdb;
    $charset_collate = $wpdb->get_charset_collate();
    $pao  = $wpdb->prefix . 'pao';
    $results=$wpdb->get_results("select * from $pao");
        $endpointsdata =array();
        foreach($results as $row){
        $endpointsdata[$row->pao_name] = $row->pao_value;
        }
        return $endpointsdata;
}

add_action( 'init', 'pa_custom_endpoint' );
function pa_custom_endpoint() {
    foreach(pa_custom_endpoint_keys() as $endpointkey=>$endpointlable){
    add_rewrite_endpoint( $endpointkey, EP_ROOT | EP_PAGES );
    }
}
//
add_filter( 'query_vars', 'pa_custom_endpoint_query_vars', 0 );
function pa_custom_endpoint_query_vars( $vars ) {
    foreach(pa_custom_endpoint_keys() as $endpointkey=>$endpointlable){
    $vars[] = $endpointkey;
    }
    return $vars;
}
//
add_filter( 'woocommerce_account_menu_items', 'pa_custom_endpoint_link_my_account' );
function pa_custom_endpoint_link_my_account( $items ) {
    foreach(pa_custom_endpoint_keys() as $endpointkey=>$endpointlable){
    $items[$endpointkey] = $endpointlable;
    }
    return $items;
}
//
function pa_custom_endpoint_content() {
        foreach(pa_custom_endpoint_keys() as $endpointkey=>$endpointlable):
        endforeach;
        echo $endpointlable;
}
    foreach(pa_custom_endpoint_keys() as $endpointkey=>$endpointlable){
$activetabendpoint=$endpointkey;
$underline="_";
$endpoint="endpoint";
$activeendpointcontenthook="woocommerce_account_$activetabendpoint$underline$endpoint";
add_action( $activeendpointcontenthook, 'pa_custom_endpoint_content');
}

php wordpress woocommerce hook-woocommerce woocommerce-rest-api
© www.soinside.com 2019 - 2024. All rights reserved.