samdo

Рейтинг
86
Регистрация
24.08.2015
Sitealert:
Значит, не по тем значениям считаете.

Ну как же? Есть sub_field c названием "sub_field_name" и с несколькими вариантами значений, одно из которых "Тут нужное значение". Количество sub_field_name с установленным значением "Тут нужное значение" я и пытаюсь посчитать.

$total = 0;
$repeater = get_field('repeater');
if ($repeater) {
foreach ($repeater as $row) {
if ($row['sub_field_name'] == 'Тут нужное значение') {
$total++;
}
}
}
echo $total;
Samail:
Для начала print_r($repeater) погляди, есть ли там вообще хоть что-то.

Да, значения же выводятся на странице, их надо только посчитать и вывести количество. Количество пустых полей считает, а количество полей со значением нет.

Подскажите как подсчитать количество полей ACF Repeater с определенным значением?

Пробую:

$total = 0;
$repeater = get_field('repeater');
if ($repeater) {
foreach ($repeater as $row) {
if ($row['sub_field_name'] == 'Тут нужное значение') {
$total++;
}
}
}
echo $total;

Но в ответ получаю 0. Хотя, если вместо "Тут нужное значение" отставляю пустоту, то выводит количество полей, которые не заполнены.

Neumann1970:
Ну тогда возникает справедливый вопрос, почему системы для wp типа Elementor - тормозят ренжирование и не дают поднятся страницам сайта, например в топ-5, топ 10? Получается что дело наверное не только в контенте но и в коде скорей всего ? Или я ошибаюсь ?

Любой pagebuilder - зло, громоздят кучу ненужного кода и подключают кучу js.

Samail:
Вот это замени на:
var fieldname = '';
$('input[name="fieldname"]:checked').each(function(indx, element){
fieldname += $(this).val()+', ';
});

Да, да, да.... 🍻🍻🍻

Благодарю всех, кто не прошел мимо и потратил на меня своё драгоценное время!

MkrtElion:
Попробуйте просто в пхп коде $_POST['fieldname'] заменить на implode(«,»,$_POST['fieldname'])

Заменять нужно в этой стоке $message .= "Данные поля с чекбоксами: " . $_POST['fieldname'] . "<br/>";

Ну и name в чекбоксах делайте с []

Кавычки поправьте только. Пишу с телефона и не нашел на клавиатуре нужных кавычек

Посмотрел что у вас там еще js. Его нужно в первую очередь править

Никак не хочет( Пустое приходит и всё 😡

ziliboba0213:
Его надо собрать перед отправкой. Самое быстрое, что пришло в голову:


$(document).ready(function(){
$('#btn_submit').click(function(){
fieldname = [];

$('input:checkbox').each(function(){
fieldname.push( $(this).val() );
});

var rtype = $('input[name="fieldname"]:checked').val();
$.ajax({
url: "/mail.php",
type: "post",
dataType: "json",
data: {
"fieldname": fieldname
},
success: function(data){
$('.messages').html(data.result);
}
});
});
});


Вроде делал проще как-то, но не уверен... А, тогда и [] в чекбоксе не нужны вроде 🤪

А, вы и через json еще... Тут надо мозгами думать, я так не умею :)

А зачем вам var rtype = $('input[name="fieldname"]:checked').val(); ?

И почему вы передаете только fieldname, а где у вас в отправке user_email?

Не приходит вообще письмо после этих добавлений 😕

ivan-lev:
- где у меня ошибка?
p.s. Если ожидаетмся массив, то в имени указываются скобки квадратные
<input type="checkbox" name="fieldname[]" id="unic1" value="Значение 1"> 

Да, вот это близко, но когда я добавляю [], то значение поля вообще не приходит на email. Поэтому я и обращаюсь к вам, чтобы понять, что я еще пропустил и в каком месте)

MkrtElion:
Вы ошибкись в name="fieldname". Имена должны быть разные у всех если это именно чекбокс.

Не не, разными должны быть id, параметр name одинаков.

Подскажите как подключить easy fancybox только на нужной странице.

Например, для отключения Contact Form 7 на ненужных страницах я добавляю в functions.php код:

add_filter('wp', 'cf7_disable_css_js');
function cf7_disable_css_js(){
if( ! is_page('contacts') ){
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
}
}

Таким образом скрипты и стили Contact Form 7 подключаются только на странице contacts.

Как сделать то же самое для Easy Fancy Box?

Спасибо!

Всего: 158