Плагин выставить рейтинг индивидуально
На сайте для коллекционеров есть возможность отмечать какая запись или пост в наличии,
нужен виджет чтоб отметит какое качество вещи в наличии
от плохого до идеально. вот пример выпадалки
Подсмотрел, что решается через плагин рейтинг, но он не учитывает индивидуальный рейтинг, а считает общий,
Может есть специальный плагин, может кто встречал ?
Сейчас временное решение:
Ищу плагин рейтинга, буду править, чтоб запись шла не в 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, ...]