Плагин выставить рейтинг индивидуально
На сайте для коллекционеров есть возможность отмечать какая запись или пост в наличии,
нужен виджет чтоб отметит какое качество вещи в наличии
от плохого до идеально. вот пример выпадалки
Подсмотрел, что решается через плагин рейтинг, но он не учитывает индивидуальный рейтинг, а считает общий,
Может есть специальный плагин, может кто встречал ?
Сейчас временное решение:
Ищу плагин рейтинга, буду править, чтоб запись шла не в post_meta, а в user_meta
user_meta -> peace_quality -> 1of10
Собрал франкенштейна, облагораживать некогда, да и толком не умею, Главное! Работает.
Пишет для пользователя в БД в user_meta где сохраняет ID постов со значением от 1 до 6
html
<select name="products postid-'. get_the_ID() .'" class="piece-quality" id="piece-quality" forqual="'. get_the_ID().'"> <option value="" selected="selected">--</option> <option value="1" selected="selected">1</option>
php
function add_ajax_scripts() { wp_enqueue_script( 'ajaxcalls', 'https://site.com/wp-content/themes/synapse-child/js/ajax-calls.js', array(), '1.0.0', true ); // wp_enqueue_script( 'ajaxcalls', get_template_directory_uri() . '/js/ajax-calls.js', array(), '1.0.0', true ); wp_localize_script( 'ajaxcalls', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajaxnonce' => wp_create_nonce( 'ajax_post_validation' ) ) ); } add_action( 'wp_enqueue_scripts', 'add_ajax_scripts' ); function custom_update_post() { $user_id_pq = get_current_user_id(); $post_id_pq = mb_strimwidth( $_POST['post_id'] , 0, 15); $show_pq_arr = get_user_meta( $user_id_pq, 'piece_quality', true ); if ( isset($_REQUEST) ) { // Выбрано стандартное значение if ( $_POST['piece_qua'] == 0 ) { unset( $show_pq_arr[ $post_id_pq ] ); // Выбрано кастомное значение - проверка перед обновлением БД } else { if ( in_array( $_POST['piece_qua'] , array('1','2','3','4','5','6','7') ) && ctype_digit( $post_id_pq ) ) { $safe_val = $_POST['piece_qua']; } else { exit( 'ERROR' ); } $show_pq_arr[ $_POST['post_id'] ] = $safe_val; } // echo json_encode($show_pq_arr); // вернуть и посмотреть данные update_user_meta( $user_id_pq, 'piece_quality', $show_pq_arr ); wp_die(); } } add_action( 'wp_ajax_custom_update_post', 'custom_update_post' );
JS
<script> jQuery(document).ready( function($) { // jQuery('#products-select').bind('change', function(event) { jQuery('.piece-quality').on('change', function(evt) { var post_id = $(this).attr( 'forqual' ); var selectVal = $('option:selected', this).attr('value'); // $("option:selected").val(); // var user_id = "<?php echo get_current_user_id(); ?>"; $.ajax({ type: 'POST', url: ajax_object.ajaxurl, data: { action: 'custom_update_post', post_id: post_id, piece_qua: selectVal }, success:function(data) { // This outputs the result of the ajax request // alert('data:'+data); console.log(data); }, error: function(errorThrown){ // alert(errorThrown); console.log(errorThrown); } }); }); }); </script>
В post meta записывать массив где [user1_id => quality1, user2_id => quality2, ...]