
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress如何实现愿望清单
WP集市
2025-08-31
【WordPress教程】
1541人已围观
-
WordPress本身没自带愿望清单功能,但就像拼乐高一样,用现成插件和少量代码就能搭出来。咱先讲最省事的法子:直接装个WooCommerce Wishlist插件(比如TI Wishlist或YITH Wishlist)。装上之后,商品页会自动冒出个“收藏”按钮,用户点一下就能存到自己的清单里,后台还能看谁收藏了什么——适合不想写代码的店主。
-
要是想自己捣鼓点定制功能,得先明白原理:愿望清单本质就是存用户和商品ID的对应关系。用WordPress的usermeta表或者自定义表都行,但简单点就用用户元数据。比如用户点收藏时,用AJAX把商品ID塞进数据库:
add_action('wp_ajax_add_to_wishlist', 'handle_wishlist_add');
function handle_wishlist_add() {
$product_id = intval($_POST['product_id']);
$user_id = get_current_user_id();
// 获取现有清单数组,不存在就新建空数组
$wishlist = get_user_meta($user_id, 'my_wishlist', true) ?: [];
if (!in_array($product_id, $wishlist)) {
$wishlist[] = $product_id;
update_user_meta($user_id, 'my_wishlist', $wishlist);
echo json_encode(['status' => 'success']);
} else {
echo json_encode(['status' => 'already_exists']);
}
wp_die();
}
- 前端得加个按钮触发这个操作。在主题的functions.php里挂个钩子,往商品页插按钮:
add_action('woocommerce_after_add_to_cart_button', 'insert_wishlist_button');
function insert_wishlist_button() {
if (!is_user_logged_in()) return;
echo '<button class="ad16-2b07-c079-e590 wishlist-btn" data-product-id="' . get_the_ID() . '">❤️ 收藏</button>';
// 简单写个AJAX调用示例
echo <<<HTML
<script>
jQuery('.wishlist-btn').click(function() {
jQuery.post(ajaxurl, {
action: 'add_to_wishlist',
product_id: jQuery(this).data('product-id')
}, function(response) {
alert('已添加到愿望清单!');
});
});
</script>
HTML;
}
- 最后别忘了给用户看清单列表。建个页面模板叫page-wishlist.php,循环调取存好的商品ID:
$user_wishlist = get_user_meta(get_current_user_id(), 'my_wishlist', true);
if (!empty($user_wishlist)) {
foreach ($user_wishlist as $product_id) {
echo '<h4>' . get_the_title($product_id) . '</h4>';
echo get_the_post_thumbnail($product_id);
}
} else {
echo '你的愿望清单还是空的哦';
}
-
注意得处理未登录用户——要么跳转登录页,要么用cookie临时存(但换设备就没了)。插件之所以方便是因为这些都包好了,还带缓存优化。自己写的话,记得非登录用户用localStorage暂存,等登录后再同步到数据库。
-
进阶点可以加共享功能,生成加密链接让别人看你的清单。逻辑是生成随机token存数据库,URL里带token就能查对应清单。但核心还是那几句SQL和数组操作——WordPress玩到最后,都是和meta表打交道。
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。

热门文章
