Поддержка Разное Как создать сниппет

  • Решено tolyan59

    (@tolyan59)


    В файле /wp-admin/includes/file.php присутствует такой код

    	/**
    	 * Filters the override parameters for a file before it is uploaded to WordPress.
    	 *
    	 * The dynamic portion of the hook name, <code>$action</code>, refers to the post action.
    	 *
    	 * Possible hook names include:
    	 *
    	 *  - <code>wp_handle_sideload_overrides</code>
    	 *  - <code>wp_handle_upload_overrides</code>
    	 *
    	 * @since 5.7.0
    	 *
    	 * @param array|false $overrides An array of override parameters for this file. Boolean false if none are
    	 *                               provided. @see _wp_handle_upload().
    	 * @param string[]    $file      An array of data for the file. Reference to a single element of <code>$_FILES</code>.
    	 */
    	$overrides = apply_filters( "{$action}_overrides", $overrides, $file );
    

    Далее пропускаем
    Вот строка кода, который не позволяет импортировать товар встроенным инструментом импорта-экспорта в режиме мультисайта return call_user_func_array( $upload_error_handler, array( &$file, __( ‘Sorry, this file type is not permitted for security reasons.’ ) ) );.

    
    if ( ( ! $type || ! $ext ) && ! current_user_can( 'unfiltered_upload' ) ) {
    	return call_user_func_array( $upload_error_handler, array( &$file, __( 'Sorry, this file type is not permitted for security reasons.' ) ) );
    }
    

    Подскажите пожалуйста, как будет выглядеть сниппет который закомментирует строку выдающую ошибку в варианте мультисайта.

    
    // return call_user_func_array( $upload_error_handler, array( &$file, __( 'Sorry, this file type is not permitted for security reasons.' ) ) );
    

    Уважаемые профессионалы, прошу поддержки. Можно непосредственно код сниппета. Можно и ссылочку на документацию (владею только русским) в которой описано как сделать такого рода сниппет.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yuri

    (@yube)

    сниппет который закомментирует строку

    Это в принципе невозможно. То, что может менять содержимое файлов, называется патч (patch) и, так сказать, гвоздь не от той стенки.

    Можно и ссылочку на документацию

    Ссылка на документацию в шапке форума: https://codex.wordpress.org/ru:Main_Page

    Судя по всему, к запрету приводит условие ! current_user_can( 'unfiltered_upload' ). Можно попробовать каким-либо плагином управления ролями и правами (см. https://ru.wordpress.org/plugins/search/Roles+Capabilities/) добавить себе право ‘unfiltered_upload’. (Могу ошибаться, со спецификой мультисайтов плохо знаком)

    Автор tolyan59

    (@tolyan59)

    Спасибо! Про current_user_can я понял, но пока не могу определить где даются права в настройке. Поэтому и прошу помощи о том, как пропустить эту проверку.

    Автор tolyan59

    (@tolyan59)

    А можно про патч (patch) чуть подробнее.

    Автор tolyan59

    (@tolyan59)

    Про права.
    Особые случаи #Особые случаи
    загрузка любых файлов – По умолчанию эта возможность недоступна ни одной роли (включая суперадминистраторов). Возможность должна быть активирована путем определения следующей константы:
    define( ‘ALLOW_UNFILTERED_UPLOADS’, true );

    Модератор Yuri

    (@yube)

    А можно про патч (patch) чуть подробнее.

    Патч — Википедия Но вряд ли оно Вам [сейчас] нужно. Это немного другие технологии из немного другой области.

    #Особые случаи

    Похоже, это именно то, что нужно. Главное — угадать слово 🙂

    Получилось?

    Автор tolyan59

    (@tolyan59)

    Да. И я очень рад что есть такие не равнодушные, как Вы.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Как создать сниппет» закрыта для новых ответов.