我一直在四处寻找,但找不到解决办法。我试图在一个短代码中显示当前登录用户的一些用户元值。
元键是
_wc_braintree_credit_card_payment_tokens
示例值为
a:1:{s:7:"bhaddfh";a:7:{s:7:"default";b:0;s:4:"type";s:11:"credit_card";s:9:"last_four";s:4:"2122";s:9:"card_type";s:10:"mastercard";s:9:"exp_month";s:2:"10";s:8:"exp_year";s:4:"2022";s:18:"billing_address_id";s:2:"sz";}}
如何在快捷码中显示“last\\u four”值和“card\\u type”值(此处示例中为mastercard)?
在前端显示它们以供当前用户查看。在付款方式列表中最多保存一张最新卡(如果保存了多张卡)。
非常感谢。
SO网友:WebElaine
您没有提到用户是否只能在登录时访问此页面,因此此示例包括一项检查,以确保当前访问者已登录,否则不会输出任何内容。
<?php
// create the shortcode
add_shortcode(\'wpse_312268_show_cc_info\', \'create_wpse_312268_shortcode\');
function create_wpse_312268_shortcode() {
// only do something if user is logged in
if(is_user_logged_in()) {
// get their id
$user_id = get_current_user_id();
// get the specific usermeta value as an array
$cc_meta = get_user_meta($user_id, \'_wc_braintree_credit_card_payment_tokens\', false);
// get specific values from the array
$last_four = $cc_meta[\'last_four\'];
$card_type = $cc_meta[\'card_type\'];
// only show if the values aren\'t empty
if(!empty($last_four) && !empty($card_type)) {
// display with whatever markup you like
echo "<div class="cc_info">$card_type ending in
$last_four</div>";
}
}
}
?>
根据您的需要,您可能还希望使文本可翻译。