Skip to content
Read For Learn
Read For Learn
  • Database
    • Oracle
    • SQL
  • C
  • C++
  • Java
  • Java Script
  • jQuery
  • PHP
Read For Learn
  • Database
    • Oracle
    • SQL
  • C
  • C++
  • Java
  • Java Script
  • jQuery
  • PHP

why after saving meta value it’s saving all the values the one that i clicked?

Ok so we have things, and we want to favourite/unfavourite them as done. First, we need 2 functions:

  • saeed_is_favourited( int $post_id, string $thing_to_favourite ) ( where $thing_to_favourite is the thing we’re marking as saved/favourited/etc, and $default is the value to return if we don’t know yet
  • saeed_set_favourited( int $post_id, string $thing_to_favourite, bool $favourited ) where we set $thing_to_favourite on that post as favourited or not favourited

Then you will need a way to send an AJAX request to call saeed_set_favourited with the requested value.

We will store if it’s favourited in user meta using a user meta with a key like this:

saeed_favourite_123_ABC

Where 123 is the post ID, and ABC is the thing we’re favouriting/not favouriting. This thing is a string, any string of your choosing. In the examples I give, it is completely arbitrary. It is not the slug of a post or a meta key, or a username. I could use those if I wanted, or I could make them up.


Here is an attempt at implementing saeed_is_favourited

function saeed_is_favourited( int $post_id, string $thing_to_favourite ) : bool {
    $user_id = get_current_user_id();
    $meta_key = 'saeed_favourited_' . $post_id . '_' . $thing_to_favourite;
    $result = get_user_meta( $user_id, $meta_key, true );
    return boolval( $result );
}

Used like this:

if ( saeed_is_favourited( get_the_ID(), 'apples' ) ) {
    echo "you have favourited apples on this post";
} else {
    echo "you have not favourited apples on this post";
}

Here is an attempt at implementing saeed_set_favourited

function saeed_set_favourited( int $post_id, string $thing_to_favourite, bool $favourited ) : void {
    $user_id = get_current_user_id();
    $meta_key = 'saeed_favourited_' . $post_id . '_' . $thing_to_favourite;
    update_user_meta( $user_id, $meta_key, $favourited );
}

Notice that I used update_user_meta, not add_user_meta. add_user_meta can create multiple meta key/value pairs, meta keys are not unique.


Finally, we need a way to set if it has been favourited or not. Here is an old style Admin AJAX handler:

function saeed_ajax_favourite_a_thing() : void {
    $post_id = 0;
    if ( ! empty( $_POST['post_id'] ) {
        $post_id = intval( $_POST['post_id'] );
    } else {
        wp_die( 'a post_id number is needed, none was provided' );
    }

    $thing_to_favourite="";
    if ( ! empty( $_POST['thing_to_favourite'] ) {
        $thing_to_favourite = $_POST['thing_to_favourite'];
    } else {
        wp_die( 'a thing_to_favourite is needed, none was provided' );
    }

    $favourite = false;
    if ( ! empty( $_POST['favourite'] ) {
        $favourite = boolval( $_POST['favourite'] );
    } else {
        wp_die( 'a favourite is needed, either true or false, none was provided' );
    }
    saeed_set_favourited( $post_id, $thing_to_favourite, $favourite );
}
add_action( 'wp_ajax_saeed_ajax_favourite_a_thing', 'saeed_ajax_favourite_a_thing' );

You would then pass a post ID, a thing_to_favourite representing the thing you want to favourite, and a true/false for wether it is to be favourited or unfavourited.

E.g. this would favourite apple:

        $.ajax({
            type: 'POST',
            url: ajax_object.ajaxurl,
            data: {
                action: 'saeed_ajax_favourite_a_thing',
                post_id: post_id
                thing_to_favourite: 'apple',
                favourite: true
            }
        });

You should consider looking into the more modern REST API endpoints as a cleaner replacement for this AJAX handler.

You can also use saeed_is_favourited to construct your frontend, and the AJAX to toggle the items on/off.

Because it used user meta, the favouriting will work on a per user basis.

You will want to check is_user_logged_in() as this code will not work for logged out users.

Note that none of this code is tested, you may need to make modifications after integrating it into your code

Related Posts:

  1. How to get all term meta for a taxonomy – getting term_meta for taxonomy
  2. Job of meta_key meta_value fields in database tables
  3. order by multiple meta_keys?
  4. How to get the total number of meta_values based on a custom post type?
  5. WP_POSTMETA – What do these values mean inside the data structure?
  6. How can I convert postmeta from unserialized to serialized?
  7. Is it safe to add a new field to meta_value field?
  8. How can I use ‘orderby’ => ‘meta_value_num’ to order by the numerical value even if the value starts with a word?
  9. Display current ranking of post as a number in post title
  10. I can not display meta value in extras.php and template-tags.php
  11. Count Post and Page Views based on meta_value Using Shortcode in Dashboard Widget
  12. Negative meta_query if storing multiple post_meta values with shared meta_key
  13. if get_post_meta function returns empty – Do Not Display HTML
  14. How to get the total of two meta values from different meta keys?
  15. How to save a meta_value as a numeric value after I retrieve it via update_post_meta?
  16. How to update/add child posts meta whenever the parent post meta is updated?
  17. Multiple meta key and value search in the query
  18. How to sort by meta value num, but ignore zero value?
  19. Update post meta array – add new, single value
  20. How do I retrieve the slug of the current page?
  21. Most efficient way to get posts with postmeta
  22. How to only display posts whose meta_value field is not empty?
  23. Get posts by meta value
  24. Explanation of update_post_(meta/term)_cache
  25. How to extract data from a post meta serialized array?
  26. How to save an array with one metakey in postmeta?
  27. WordPress is stripping escape backslashes from JSON strings in post_meta
  28. How can I get the post ID from a WP_Query loop?
  29. Check if Post Title exists, Insert post if doesn’t, Add Incremental # to Meta if does
  30. How to update_post_meta value as array
  31. Adding meta tag without plugin
  32. What’s the point of get_post_meta’s $single param?
  33. What is the different between an attachment in wp_posts and an attachment in wp_postmeta?
  34. How to edit a post meta data in a Gutenberg Block?
  35. Sanitizing integer input for update_post_meta
  36. post formats – how to switch meta boxes when changing format?
  37. Execute action after post is saved with all related post_meta records (data)
  38. Lack of composite indexes for meta tables
  39. Get a single post by a unique meta value
  40. if get_post_meta is empty do something
  41. How we get_post_meta without post id
  42. How get post id from meta value
  43. What is the code to get the download link for a product in WooCommerce?
  44. Safe to delete blank postmeta?
  45. Dealing with Many Meta Values, 30+
  46. advanced custom fields update_field for field type: Taxonomy
  47. update_post_meta not saving when value is zero
  48. Content hooks vs User hooks
  49. Meta compare with date (stored as string) not working
  50. Trying to get custom post meta through Jetpack JSON API [closed]
  51. How to update/insert custom field(post meta) data with wordpress REST API?
  52. Restrict post edit/delete based on user ID and custom field
  53. get_post_meta returning empty string when data shows in the database
  54. publish_post action hook doesn’t give post_meta_data
  55. Remove WordPress.org Meta link
  56. Remove post meta keys
  57. How to access the post meta of a post that has just been published?
  58. Why time functions show invalid time zone when using ‘c’ time format?
  59. Why is get_post_meta returning an array when I specify it as single?
  60. How to update/delete array in post meta value?
  61. Adding an assisting editor box to Post page
  62. delete unused postmeta
  63. Should I sanitize custom post meta if it is going to be escaped later?
  64. Add post meta based on another post meta value before publish post
  65. How do I retrieve multi-dimensional arrays from the wp_postmeta table, & display on a website?
  66. Front-end update_post_meta snippet displays white screen?
  67. Query between two meta values?
  68. Save both current and new version of post meta
  69. Get Advanced Custom Fields values before saving [closed]
  70. Give extra post-meta to RSS feeds
  71. How to get meta value in wp_attachment_metadata
  72. WP REST API “rest_no_route” when trying to update meta
  73. Clean up output added via wp_head()
  74. List posts under meta_value heading
  75. WordPress Admin Panel search posts with custom post meta values along with title
  76. Why am I getting an infinite loop with have_posts?
  77. get_post_meta – get a single value
  78. delete value 0 in post meta [closed]
  79. Can I safely delete a record, manually, in the wp postmeta table?
  80. How to store post meta in an array?
  81. What action hook updates post meta?
  82. Can’t translate the post meta data (Date) in another language
  83. get_post_meta / update_post_meta array
  84. adding a URL to a post meta
  85. How to break meta values into different items and avoid duplicates?
  86. Exclude a category from the filed under list
  87. Short of raw SQL, can I query for multiple attachment metadata that have a given array key?
  88. How do I access post meta data when publishing a new post in Gutenberg?
  89. update_post_meta() not working when used with WordPress action
  90. Using Advanced Custom Field (ACF) to insert meta description on each page
  91. Triple meta_key on custom SELECT query
  92. get_post_custom()
  93. Adding meta data to an attachment post
  94. update_post_meta not adding anything.(Nor add_post_meta)
  95. loop through all meta keys with get_post_meta
  96. Get posts by meta value with date
  97. How to add meta tag to wordpress posts filter?
  98. Are multiple values from get_post_meta guaranteed to be ordered?
  99. Identifying Importer Posts
  100. Get updated post meta on save_post action?
Categories post-meta Tags meta-value, post-meta
How to add fields in custom registration form, validate it and aave to db? [closed]
Output a specific link in WordPress post if the single post’s category’s name contain certain word

Recommended Hostings

Cloudways: Realize Your Website's Potential With Flexible & Affordable Hosting. 24/7/365 Support, Managed Security, Automated Backups, and 24/7 Real-time Monitoring.

FastComet: Fast SSD Hosting, Free Migration, Hack-Free Security, 24/7 Super Fast Support, 45 Day Money Back Guarantee.

Recent Added Topics

  • Bug in translation system: load_theme_textdomain() returns true, files are available and accessible but the language defaults to english
  • Custom Elementor controls not appearing in the widget Advanced tab using injection hooks
  • Get the name of the template/*html file used
  • Trying to Add Paging to Single Post Page
  • Sharing media files between live and staging servers
  • How to display the description of a custom post type in the dashboard?
  • Critical error on image display
  • Copying WP data and files into new install?
  • How to determine the DirectAdmin WordPress backup date?
  • How to get list of ALL tables in the database?
© 2026 Read For Learn
  • Database
    • Oracle
    • SQL
  • algorithm
  • asp.net
  • assembly
  • binary
  • c#
  • Git
  • hex
  • HTML
  • iOS
  • language angnostic
  • math
  • matlab
  • Tips & Trick
  • Tools
  • windows
  • C
  • C++
  • Java
  • javascript
  • Python
  • R
  • Java Script
  • jQuery
  • PHP
  • WordPress