Большой опыт с Php, Wordpress, Drupal, Yii2.
Контакты
Местоположение
Россия, Свердловская обл., Екатеринбург

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (29)
  • Woocommerce вывести кнопку добавить в корзину в нужном месте шаблона?

    @Gamelot
    Программист php
    Можно воспользоваться функцией woocommerce_template_single_add_to_cart(). Она использует глобальную переменную $product внутри себя. При этом также вылезет input с кол-вом заказываемого товара. Его можно скрыть на css. Для простого товара работает точно. Для других типов не проверял.

    <?php
    woocommerce_template_single_add_to_cart();
    ?>
    Ответ написан
    Комментировать
  • Как вывести поле ACF в настройках экрана админки?

    @Gamelot
    Программист php
    Доступные фильтры:

    bulk_actions-edit-post: Post type ‘post’ edit screen
    bulk_actions-edit-page: Post type ‘page’ edit screen
    bulk_actions-edit-: Custom post type edit screen
    bulk_actions-edit-: Custom taxonomy edit screen
    bulk_actions-edit-comments: Comments list screen
    bulk_actions-plugins: Plugins list screen
    bulk_actions-users: Users list screen
    bulk_actions-upload: Media library list (only works in list view, not grid view)

    Примеры:

    Добавляет пункт меню:
    <?php
    add_filter('bulk_actions-edit-post', function($bulk_actions) {
    	$bulk_actions['change-to-published'] = __('Change to published', 'txtdomain');
    	return $bulk_actions;
    });


    Обработчик пункта меню:
    add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {
    	if ($action == 'change-to-published') {
    		foreach ($post_ids as $post_id) {
    			wp_update_post([
    				'ID' => $post_id,
    				'post_status' => 'publish'
    			]);
    		}
    		$redirect_url = add_query_arg('changed-to-published', count($post_ids), $redirect_url);
    	}
    	return $redirect_url;
    }, 10, 3);


    Вывод уведомления при выборе действия.
    add_action('admin_notices', function() {
    	if (!empty($_REQUEST['changed-to-published'])) {
    		$num_changed = (int) $_REQUEST['changed-to-published'];
    		printf('<div id="message" class="updated notice is-dismissable"><p>' . __('Published %d posts.', 'txtdomain') . '</p></div>', $num_changed);
    	}
    });


    Пример обработчика пункта меню
    add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {
    	if ($action == 'mark-as-verified') {
    		foreach ($post_ids as $post_id) {
    			update_post_meta($post_id, 'verified', '1');
    		}
    		$redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url);
    	}
    	return $redirect_url;
    }, 10, 3);


    на картинке изображен процесс массового редактирования постов:

    651123c47d355715410900.gif

    куда Вы тут хотите встроить текстовое поле для массового редактирования?

    слева от кнопки Apply можно встроить текстовое поле. я это делал на JS. создавал скрипт для админов на JS и подключал его на сайте через functions.php (Enqueue Scripts) . текстовое поле будет находиться внутри html-формы для массового редактирования с выбранным действием.

    И можно его значение обработать в хуке-обработчике действия - выполнить функцию update_field() для Вашего поля ACF в редактируемом посте.
    Ответ написан
    Комментировать
  • Как заполненные данные формы конвертировать в CSV и при submit отправить на почту с помощью Wordpress?

    @Gamelot
    Программист php
    Надо написать обработчик формы:
    • сформировать из переменных заполненной формы $_REQUEST['a'], $_REQUEST['b'], $_REQUEST['c'] переменную тела CSV типа $str = "123;334;444;555\n222;333;444;55\n";
    • записать ее в файл. самое легкое через file_put_contents()
    • отправьте письмо через wp_mail(), сделав вложение attachment к письму - Ваш записанный файл
    Ответ написан
    Комментировать
  • Вывод данных в HTML в формате не простой таблицы?

    @Gamelot
    Программист php
    Даты надо приводить к формату unix timestamp. По сути, это integer. В этом формате можно находить разницу между датами, а также сравнивать даты между собой. Изучить материал можно здесь:

    Сравнивать можно как timestamp, так и объект Date(). Но первый вариант даже проще.
    Ответ написан
    Комментировать
  • Конфликт при создании post type wordpress?

    @Gamelot
    Программист php
    Приведите код конфликтующего плагина с функцией register_post_type(). И, возможно, будет более понятно, в чем дело.
    Ответ написан
    Комментировать