WP User Frontend 的Account 账户中心增加新页面或菜单

这是一个开发前端模板的常见场景,在账户中心添加新模块或页面,增加用户中心的集成度。

不扯淡,直接开干!

下面模板目录增加一个新文件

/wp-content/themes/zzbang.cn/wpuf/my-page.php 或 /wp-content/plugins/wp-user-frontend/templates/my-page.php 

这样,这个页面会被account.php加载进来。

在你主题的functions.php 文件中,加入下面代码,把新模块页面加载到左侧菜单导航里。

/*
* Add custom section/menu (My Page) on the My Account page
*/
add_filter( 'wpuf_account_sections', 'wpuf_my_page' );

function wpuf_my_page( $sections ) {
$sections = array_merge( $sections, array( array( 'slug' => 'my-page', 'label' => 'My Page' ) ) );

return $sections;
}

add_action( 'wpuf_account_content_my-page', 'wpuf_my_page_section', 10, 2 );

function wpuf_my_page_section( $sections, $current_section ) {
wpuf_load_template(
"my-page.php",
array( 'sections' => $sections, 'current_section' => $current_section )
);
}

至于用户中心的前端页面,可以添加页面,复制粘贴进去短代码[wpuf_account] ,这样可以快速构建前端用户中心。

如果你想将新页面加载到菜单项,则必须加载到wpuf_account_sections 过滤器.

添加自己的页面

如果你要添加一个 slug为 `your-score`的新页面, 可以借鉴下面的代码.


$sections = array_merge( $sections, array( array( 'slug' => 'your-score', 'label' => 'Scoreboard' ) ) );

把上面代码同样复制粘贴到主题或子主题的 functions.php 文件。

现在,需要为新页面增加功能了:


add_action( 'wpuf_account_content_your-score', 'wpuf_your_score_section', 10, 2 );

function wpuf_your_score_section( $sections, $current_section ) {
wpuf_load_template(
"my-page.php",
array( 'sections' => $sections, 'current_section' => $current_section )
);
}

调用方式:

 add_action ( 'wpuf_account_content_my-page', 'wpuf_my_page_section', 10, 2 ); 

分别代表顺序和优先级。因此,根据数量,可以更改标签顺序。请注意,您可以覆盖默认模板或加载任何自定义模板。要覆盖内置模板,请按照如何覆盖模板中的说明进行操作。要创建自定义模板,请遵循与覆盖模板相同的说明,并将模板文件名添加到以下代码行。例如,如果我们将自定义模板添加为“my-page.php”,那么我们的代码将如下所示


wpuf_load_template(
"my-page.php",
array( 'sections' => $sections, 'current_section' => $current_section )
);

举个例子


add_filter( 'wpuf_account_sections', 'wpuf_my_page' );

function wpuf_my_page( $sections ) {
$sections = array_merge( $sections, array( array( 'slug' =&gt; 'my-page', 'label' =&gt; '<strong>My Page</strong>' ) ) );

return $sections;
}

add_action( 'wpuf_account_content_my-page', 'wpuf_my_page_section', 10, 2 );

function wpuf_my_page_section( $sections, $current_section ) {
wpuf_load_template(
"my-page.php",
array( 'sections' =&gt; $sections, 'current_section' =&gt; $current_section )
);
}

*** 您可以将标签“我的页面”更改为您想要的任何标签

留下评论