top of page
Crumpled Fabric

0

Create a Live Heart Counter on Your Wix Dynamic Page Using Real-Time API

Click URL to copy

Oct 9, 2024

3 min read

WIX Ideas Team

Tags: Wix Studio Like Counter Wix Realtime API

In this tutorial, we’ll dive into an exciting feature for your Wix site by integrating the Wix Realtime API. This case study shows how to implement a dynamic "heart" or "like" system where users can click on an icon to express their appreciation for items, and the count is updated in real-time across different views, such as the logged-in user and incognito window.


What We'll Be Creating

We’ll build a heart count system where:

  • Users can click on an icon (heart) to like an item.

  • The number of hearts is displayed in real-time across the site, even for users not logged in.

  • The heart count updates dynamically for both repeaters and item pages.

  • We’ll ensure this functionality works seamlessly for both logged-in users and those browsing in incognito mode.


Step 1: Understanding the Basics

Our first goal is to track how many people have clicked the heart icon on a specific item. We will use Wix's real-time API to ensure that whenever a user likes or unlikes an item, the changes are reflected in real-time across the site.


For example:

  • When you click the heart icon, it recalculates and updates the heart count for all visitors.

  • This feature works for both logged-in users and anonymous visitors in incognito windows.


Step 2: Setting Up the CMS Collection

Before we jump into the code, let’s refresh your memory on the CMS collection we’re using. The collection stores details about the items, including which users have clicked the heart and the total heart count.

  • Members Field: Stores the IDs of users who have liked the item.

  • Heart Count: Keeps track of the total number of likes.

Ensure that your collection has these fields in place before proceeding.


Step 3: Setting Up the Dynamic Page

We’ll begin by adding an item page to display the heart icon and its current count.

  1. Add a Dynamic Page: This will allow us to display different items dynamically.

  2. Copy the Heart Icon and Counter: From the repeater page, copy the heart icon and heart count text element to your dynamic page.

  3. Style Adjustments: Adjust the icon and text styles as needed to ensure visibility.


Step 4: Connecting to the CMS

Now, let's connect the heart count text element to the CMS so that it dynamically reflects the total number of likes for each item.


  • Connect the text element displaying the count to the "Heart Count" field in the CMS.


Key Features of the Code:

  • Real-Time Updates: We use subscribe to listen for updates on the heartChannel. When a user clicks the heart icon, the total heart count updates in real-time across all sessions.

  • Authentication Check: Only logged-in users can like an item. If not logged in, the user is prompted to log in.

  • Dynamic Data: The code pulls data from the CMS, such as the heart count and the array of users who have already liked the item.

  • Publishing Messages: When a user likes or unlikes an item, the updated heart count is published to the real-time channel, ensuring instant updates across all views.


Step 6: Linking the Repeater to the Dynamic Page

To enhance navigation, we link the heart icons on the repeater page to their respective dynamic item pages. This ensures that when a user clicks on a heart in the repeater, they are directed to the item’s detail page where they can also like the item.


Step 7: Testing the Feature

Once you've set everything up:

  1. Test the heart count feature by liking/unliking items in both logged-in and incognito modes.

  2. Verify that the heart count updates in real-time on all relevant views.


Final Thoughts

Now you know how to implement a real-time heart count system on your Wix site! This feature adds interactivity and real-time engagement for users, whether they are logged in or browsing anonymously. If you have any questions or want to see more tutorials like this, leave a comment, subscribe, and smash the like button!

Code



Leave a comment (0)

Thanks for leaving a comment🎉

ahmed

ahmed

May 19, 2024

wix form data

Hi i need your help also in wix form submission

the problem is that some fields are generated when $w.onReady(function () { like day & date and when i choose the student name i get the phone number from database .

and the form save only the field u fill it by ur self like input or dropdown

Reply

Walter Odibi

Walter Odibi

January 20, 2000

bromar

bromar

Sep 29, 2023

Love the tutorial!!!

You are truly great at creating these instructional videos!! Thank you! I am having trouble figuring out . . 'the triggered email' . . it is not being sent to the user submitting the form, the form and the email to the admin works great. . Could you point me to where this might have already been addressed? or any other help? On a second note. .the submit button success/failure message will go back to the default message once it's connected to the data set(I couldn't figure that out either. )

Reply

Walter Odibi

Walter Odibi

January 20, 2000

kaan

kaan

Jun 4, 2023

wishlist and rating system

hello sir I try today 2 hours but not working if you want I pay money can you do this 2 ( wishlist and rating star) system please I send to you invaid

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Hi there, you can contact me here using the in-app chatbox

Waqas

Waqas

Apr 16, 2023

Triggered Email Backend

Hi mate please can you send email by backend

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Hi Waqas, there isn't a backend code for this tutorial. The emails will be sent from the client-side.

Ghan

Ghan

Dec 29, 2022

Great Tutorial

Hi !

First of all, I want to thank you for your great tutorials, they helped us a lot with the coding.
But I still need your help, if you don't mind. I have based on Save Calculated Field using Wix Data Hooks Codes, to code my form . but the problem is I don't know why the code only reads the computation for "week2" computation and not the "weeks"

here is the code

I also did a separate column in the dataset where the chosen datas for both fields will be placed.

$w.onReady (() => {
$w("#Person").onChange(() => {
$w("#weeks").onChange(() => {
$w("#week2").onChange(() => {
let person = Number($w("#Person").value);
let weeks = Number($w("#weeks").value);
let week2 = Number($w("#week2").value);


$w("#totalLabel").show();

$w("#totalLabel").text = `"${String(weeks * Number(person))}페소"`; //DESIGN YOUR MESSAGE
$w("#totalLabel").text = `"${String(week2 * Number(person))}페소"`; //DESIGN YOUR MESSAGE

});
});
});

});

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Hi there, thanks for your comment. I see why this is a problem. The onChange() function seems wrong in combination.

To combine onChangeFunctions use this method

$w("#Person, #weeks, #weeks2").onChange(() => {

//code here

});

Walter

Walter

Aug 8, 2022

More Details? Watch video

Hi, you can click here to watch the video https://www.youtube.com/watch?v=9bx7-nBeZ5c

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Walter

Walter

Jul 11, 2022

For you

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Walter Odibi

Walter Odibi

Apr 18, 2022

Awesome Feature

This tutorial shows you how to display views on your Wix repeater.

📺WATCH VIDEO HERE https://www.youtube.com/watch?v=Iz7SdaCSdXg

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Walter Odibi

Walter Odibi

Apr 18, 2022

Amazing tutorial

This amazing tutorial will show you how to a comment section to your WIX dynamic page.

📺WATCH VIDEO HERE https://www.youtube.com/watch?v=f8-vJQFNZ_c

Reply

Walter Odibi

Walter Odibi

January 20, 2000

Walter Odibi

Walter Odibi

Apr 10, 2022

Great Feature🎉

This amazing tutorial will show you how to add a visitor view counter to your WIX dynamic page.

🚩MORE TUTORIALS https://www.wixgenius.com/wix-tutorials

Reply

Walter Odibi

Walter Odibi

January 20, 2000

RELATED TUTORIALS 🚀

Marquee Text in Wix Studio

Marquee Text in Wix Studio

Add a marquee text to your Wix Studio website using the Wix Studio native marquee text element

bottom of page