WordPress模板插件定制

您现在的位置是:首页 > WordPress教程WordPress教程

WordPress如何实现愿望清单

查看 WP集市 的更多文章WP集市 2025-08-31 【WordPress教程】 1541人已围观

  1. WordPress本身没自带愿望清单功能,但就像拼乐高一样,用现成插件和少量代码就能搭出来。咱先讲最省事的法子:直接装个WooCommerce Wishlist插件(比如TI Wishlist或YITH Wishlist)。装上之后,商品页会自动冒出个“收藏”按钮,用户点一下就能存到自己的清单里,后台还能看谁收藏了什么——适合不想写代码的店主。

  2. 要是想自己捣鼓点定制功能,得先明白原理:愿望清单本质就是存用户和商品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();
}
  1. 前端得加个按钮触发这个操作。在主题的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;
}
  1. 最后别忘了给用户看清单列表。建个页面模板叫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 '你的愿望清单还是空的哦';
}
  1. 注意得处理未登录用户——要么跳转登录页,要么用cookie临时存(但换设备就没了)。插件之所以方便是因为这些都包好了,还带缓存优化。自己写的话,记得非登录用户用localStorage暂存,等登录后再同步到数据库。

  2. 进阶点可以加共享功能,生成加密链接让别人看你的清单。逻辑是生成随机token存数据库,URL里带token就能查对应清单。但核心还是那几句SQL和数组操作——WordPress玩到最后,都是和meta表打交道。

Tags:

WordPress模板插件定制

WP集市

V管理员
文章 280 篇 | 评论 0 次
最新文章