如何通过编程创建WooCommerce可下载产品?

时间:2016-10-20 作者:Ned Vole

例如,有没有办法从PHP而不是从仪表板面板向WooCommerce产品添加MP3文件?

查看数据库,我发现可下载的\\u文件似乎是一个处理此问题的序列化数据字段。但我想知道是否有一种更直接、更推荐的方式通过API?类似于$product->put\\u files()?

1 个回复
SO网友:tradesouthwest

在单个产品中为管理编辑器创建元框。我使用插件,而不是试图添加到子主题或函数。

//add a woocommerce metabox to the product editor
add_action( \'woocommerce_product_options_general_product_data\', \'plugin_add_audio_meta_box\' );

function plugin_add_audio_meta_box()
{ ....
 <tr>
        <td class="file_url">
            <input type="text" class="input_text"
            placeholder="<?php esc_attr_e( "http://", \'plugin\' ); ?>"
            name="_plugin_two"
            value="<?php echo $plugin_fileurl; ?>" />
        </td>

       <td class="file_url_choose" width="1%">
            <a href="#" class="button upload_file_button"
            data-choose="<?php esc_attr_e( \'Choose file\', \'plugin\' ); ?>"
            data-update="<?php esc_attr_e( \'Insert file URL\', \'plugin\' ); ?>">
            <?php echo str_replace( \' \', \'&nbsp;\', __( \'Choose file\', \'plugin\' ) ); ?></a>
        </td>
        </tr>
.... }

function save_fields ...
update_post_meta( $post_id, ....
然后在需要文件的任何地方调用该文件的正面:

<p><?php
            $attr = array(
                \'src\'      => strip_tags($plugin_fileurl),
                \'loop\'     => \'true\',
                \'autoplay\' => \'\',
                \'preload\'  => \'none\',
            );

            echo \'<div class="audio-player" itemprop="audio">\' . wp_audio_shortcode( $attr ) . \' </div>\';

            /* echo do_shortcode(\'[audio src="\'.esc_url($plugin_fileurl).\'"][/audio]\'); */
            ?></p>