Так как использую UFM Yandex Files в связке с Content Magazine(в разных категориях магазина) сделал поле ссылки на Яндекс диск не обязательным (remove_filter('rcl_public_form_fields','yf_products_link',10,2);
). И добавляю поле на ссылку вручную для нужной категории.
Но есть проблема, если даже поле ссылки пустое - покупателю приходит письмо с битой ссылкой. Логично сделать проверку на наличие ссылки в поле yandex-file-url, если её нет, письмо не высылать. Как это правильно сделать? У меня что то не получилось...
Андрей CS сказал(а)
не знаю чем тут помочь, UFM Yandex Files подразумевает продажу цифровых товаров через UFM, а значит ссылка на товар должна быть
Это само собой понятно, у меня UFM Yandex Files используется только в определенной категории, а в других продажа контента происходит с помощью Content Magazine. Собственно это вопрос совместимости дополнений...
Здесь наверное два пути, либо проверить наличии у товара поля yandex-file-url, либо как то отключить UFM Yandex Files для ненужных категорий. Можете подсказать как это сделать?
Андрей 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);
Но не срабатывает, в хуках не силен
Конечно не сработает то, что вы делаете, т.к. данные которые проверяются не определены.
Смотрите как в коде плагина высылаются ссылки на файлы. Это делается с помощью 2ух экшенов:
add_action('rcl_insert_order','yf_send_free_files',20); add_action('rcl_payment_order','yf_send_sale_files',20);
Они передают $order_id по которому можно узнать товары и проверить у них наличие нужного поля и если его нет отменять экшены выше. Но тут есть минус, если в заказе будут товары с ссылками и без, то письма все равно не будет.
Так что на мой взгляд легче сделать копию плагина, переименовать его (что бы случайно не обновить) и внести в него изменения.
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>'; }