更改 Woocommerce "Points & Rewards" 插件中显示的点事件数
Change number of displayed point events in Woocommerce "Points & Rewards" plugin
我正在使用 WooCommerce "Points & Rewards" 插件为客户添加积分。
客户可以在他的账户中查看他的积分历史。
目前用户账户页面显示的积分活动只有5个。
我在插件中找到了函数:
function woocommerce_points_rewards_my_points() {
global $wc_points_rewards;
$points_balance = WC_Points_Rewards_Manager::get_users_points( get_current_user_id() );
$points_label = $wc_points_rewards->get_points_label( $points_balance );
$count = apply_filters( 'wc_points_rewards_my_account_points_events', 5, get_current_user_id() );
// get a set of points events, ordered newest to oldest
$args = array(
'orderby' => array(
'field' => 'date',
'order' => 'DESC',
),
'per_page' => $count,
'paged' => 0,
'user' => get_current_user_id(),
);
$events = WC_Points_Rewards_Points_Log::get_points_log_entries( $args );
// load the template
wc_get_template(
'myaccount/my-points.php',
array(
'points_balance' => $points_balance,
'points_label' => $points_label,
'events' => $events,
),
'',
$wc_points_rewards->get_plugin_path() . '/templates/'
);
}
有什么方法可以用自己的函数覆盖事件数吗?
如您所见,您可以使用 wc_points_rewards_my_account_points_events
过滤器挂钩来更改显示点事件的数量,这样:
add_filter( 'wc_points_rewards_my_account_points_events', 'filter_wcpr_my_account_points_events', 10, 2 );
function filter_wcpr_my_account_points_events( $events, $user_id ) {
return 20; // Change to 20 instead of 5
}
或者更短的一行:
add_filter( 'wc_points_rewards_my_account_points_events', function( $events, $user_id ){ return 20; }, 10, 2 );
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
我正在使用 WooCommerce "Points & Rewards" 插件为客户添加积分。 客户可以在他的账户中查看他的积分历史。 目前用户账户页面显示的积分活动只有5个。
我在插件中找到了函数:
function woocommerce_points_rewards_my_points() {
global $wc_points_rewards;
$points_balance = WC_Points_Rewards_Manager::get_users_points( get_current_user_id() );
$points_label = $wc_points_rewards->get_points_label( $points_balance );
$count = apply_filters( 'wc_points_rewards_my_account_points_events', 5, get_current_user_id() );
// get a set of points events, ordered newest to oldest
$args = array(
'orderby' => array(
'field' => 'date',
'order' => 'DESC',
),
'per_page' => $count,
'paged' => 0,
'user' => get_current_user_id(),
);
$events = WC_Points_Rewards_Points_Log::get_points_log_entries( $args );
// load the template
wc_get_template(
'myaccount/my-points.php',
array(
'points_balance' => $points_balance,
'points_label' => $points_label,
'events' => $events,
),
'',
$wc_points_rewards->get_plugin_path() . '/templates/'
);
}
有什么方法可以用自己的函数覆盖事件数吗?
如您所见,您可以使用 wc_points_rewards_my_account_points_events
过滤器挂钩来更改显示点事件的数量,这样:
add_filter( 'wc_points_rewards_my_account_points_events', 'filter_wcpr_my_account_points_events', 10, 2 );
function filter_wcpr_my_account_points_events( $events, $user_id ) {
return 20; // Change to 20 instead of 5
}
或者更短的一行:
add_filter( 'wc_points_rewards_my_account_points_events', function( $events, $user_id ){ return 20; }, 10, 2 );
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。