WooCommerce: Как добавить кнопку загрузки на странице товара? - PullRequest
0 голосов
/ 24 января 2019

Мы используем плагин WooCommerce на нашем сайте электронной коммерции. Я хочу добавить кнопку на странице продукта, которая позволяет пользователям бесплатно загружать PDF-файл без необходимости заходить на одну страницу продукта. Также все продукты должны иметь уникальный PDF-файл. Возможно ли это?

P.S. Я также попробовал некоторые ответы здесь.

1 Ответ

0 голосов
/ 24 января 2019

Да, это возможно.Используйте metaboxio или CMB2 для создания метаполя одного продукта.Где вы можете загрузить файл PDF для каждого продукта при создании или редактировании продукта.

Тогда вы можете использовать хук WooCommerce, чтобы показать там кнопку DownLoad.

Пример для MetaBox IO:

Добавьте приведенный выше код в конец файла functions.php.Убедитесь, что плагин metaboxio установлен и активирован.Вы можете перейти в Плагины -> Добавить новый ->, затем выполнить поиск с помощью metboxio, затем установить и активировать его.После этого вы можете скопировать и вставить код в соответствии с рекомендациями.

    function rox-pdf-button( $meta_boxes ) {
    $prefix = 'rox-';

    $meta_boxes[] = array(
        'id' => 'pdf-btn',
        'title' => esc_html__( 'Upload PDF', 'pluginrox' ),
        'post_types' => array('product' ),
        'context' => 'advanced',
        'priority' => 'default',
        'autosave' => 'true',
        'fields' => array(
            array(
                'id' => $prefix . 'product-pdf',
                'type' => 'file_advanced',
                'name' => esc_html__( 'Upload PDF File', 'pluginrox' ),
                'desc' => esc_html__( 'Here you can upload your pdf file to show on single product page', 'pluginrox' ),
                'mime_type' => 'application/pdf',
                'max_file_uploads' => 5,
                'max_status' => 'true',
                'size' => 5,
            ),
        ),
    );

    return $meta_boxes;
}
add_filter( 'rwmb_meta_boxes', 'rox-pdf-button' );

В коде, который я включил вариант загрузки нескольких файлов, вы можете сделать это просто, как вариант загрузки одного файла.Посмотрите документацию metabox io для этого.

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

Для получения дополнительной информации о том, как получить URL загруженного файла, проверьте эту документацию .

Используйте хук WooCommerce для одного продукта, чтобы опубликовать кнопку загрузки на вашем продукте.

Пример кода для показа кнопки загрузки:

add_action( 'woocommerce_after_add_to_cart_form', 'rox_single_download_button', 5 );
    function rox_single_download_button() {
        $files = rwmb_meta( 'rox-product-pdf' );
        foreach ( $files as $file ) {?>
            <a href="<?php echo $file['url']; ?>"><?php echo $file['name']; ?></a>
        <?php }
    }

Если вы хотите добавить кнопку на странице архива товара / на странице магазина WooCommerce, вам нужно подать заявку на товарный магазин или петлю крючка.

Вы можете попробовать приведенный ниже код. Дайте мне знать, работает ли он или нет, поскольку я не проверял на странице магазина.Я тестировал только на одной странице, но это должно работать.

add_action('woocommerce_after_shop_loop_item', 'rox_loop_download_button', 5);
function rox_loop_download_button() {
global $product;
$product_id = $product->get_id();
$files = rwmb_meta('rox-product-pdf', '', $product_id);
foreach ($files

as $file) { ?>
        <a href="<?php echo $file['url']; ?>"><?php echo $file['name']; ?></a>
<?php }
}

Для более подробной информации вы можете проверить эту ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...