Домой Каталог: Дополнения WP-Recall UFM Yandex Files Как сделать проверку на наличие ссылки?
7ответ(ов) в теме
Валерий
не в сети 3 года
На сайте с 20.03.2015
Участник
Тем 35
Сообщения 87
1
16:59
Версия WP-Recall: 16.16.0
Версия дополнения: 1.3.0

Так как использую UFM Yandex Files в связке с Content Magazine(в разных категориях магазина) сделал поле ссылки на Яндекс диск не обязательным (remove_filter('rcl_public_form_fields','yf_products_link',10,2);). И добавляю поле на ссылку вручную для нужной категории.

Но есть проблема, если даже поле ссылки пустое - покупателю приходит письмо с битой ссылкой. Логично сделать проверку на наличие ссылки в поле yandex-file-url, если её нет, письмо не высылать. Как это правильно сделать? У меня что то не получилось...

0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
2
17:47

не знаю чем тут помочь, UFM Yandex Files подразумевает продажу цифровых товаров через UFM, а значит ссылка на товар должна быть

0
Валерий
не в сети 3 года
На сайте с 20.03.2015
Участник
Тем 35
Сообщения 87
3
18:40

Андрей CS сказал(а)
не знаю чем тут помочь, UFM Yandex Files подразумевает продажу цифровых товаров через UFM, а значит ссылка на товар должна быть

Это само собой понятно, у меня UFM Yandex Files используется только в определенной категории, а в других продажа контента происходит с помощью Content Magazine. Собственно это вопрос совместимости дополнений...

Здесь наверное два пути, либо проверить наличии у товара поля yandex-file-url, либо как то отключить UFM Yandex Files для ненужных категорий. Можете подсказать как это сделать?

0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
4
19:29

что именно подсказать?

0
Валерий
не в сети 3 года
На сайте с 20.03.2015
Участник
Тем 35
Сообщения 87
5
20:41

Андрей CS сказал(а)
что именно подсказать?

Были мысли отключать UFM так:

function remove_email_file(){
if (!get_post_meta($post->ID,'yandex-file-url',true)) {
remove_action('rcl_insert_order','yf_send_free_files',20);
remove_action('rcl_payment_order','yf_send_sale_files',20);			
	}
}
add_action('wp','remove_email_file', 20);

или так

function remove_email_file(){
    if(has_term('mycat', 'prodcat')){
		remove_action('rcl_insert_order','yf_send_free_files',20);
		remove_action('rcl_payment_order','yf_send_sale_files',20);	
    }
}
add_action('wp','remove_email_file', 20);

Но не срабатывает, в хуках не силен

0
Preci
не в сети 6 часов
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
6
21:43

Конечно не сработает то, что вы делаете, т.к. данные которые проверяются не определены.

Смотрите как в коде плагина высылаются ссылки на файлы. Это делается с помощью 2ух экшенов:

add_action('rcl_insert_order','yf_send_free_files',20);
add_action('rcl_payment_order','yf_send_sale_files',20);

Они передают $order_id по которому можно узнать товары и проверить у них наличие нужного поля и если его нет отменять экшены выше. Но тут есть минус, если в заказе будут товары с ссылками и без, то письма все равно не будет.

Так что на мой взгляд легче сделать копию плагина, переименовать его (что бы случайно не обновить) и внести в него изменения.

1
Валерий
не в сети 3 года
На сайте с 20.03.2015
Участник
Тем 35
Сообщения 87
7
12:16

Preci сказал(а)
Так что на мой взгляд легче сделать копию плагина, переименовать его (что бы случайно не обновить) и внести в него изменения.

Спасибо, так и сделал. Добавил условие для платных и бесплатных товаров.

    foreach($attachs as $product_id => $link){
	if(!get_post_meta($product_id,'yandex-file-url',true)) return false;		
        $textmail .= '<p><b>'.get_the_title($product_id).':</b><br>';
        $textmail .= '<a href="'.$link.'">'.$link.'</a></p>';
    }

1
Вы не имеете права на публикацию сообщений в этой теме