Расширение Dokan: добавление дополнительного поля продукта для расширения функциональности электронной коммерции

Dokan – популярный плагин торговой площадки для WordPress, предназначенный для нескольких поставщиков, позволяющий пользователям создавать свои интернет-магазины и управлять ими. Несмотря на то, что Dokan предлагает широкий спектр функций, вам может понадобиться добавить дополнительное поле продукта, чтобы улучшить функциональность вашей электронной коммерции. В этой статье мы рассмотрим различные методы достижения этой цели и приведем примеры кода для каждого подхода.

Метод 1: использование перехватчиков и фильтров Dokan
Dokan предоставляет несколько перехватчиков и фильтров, позволяющих изменять его функциональность. Одним из таких хуков является «dokan_new_product_added», который срабатывает при добавлении нового продукта. Вы можете использовать этот крючок, чтобы добавить дополнительное поле в форму продукта. Вот пример:

function dokan_add_extra_product_field() {
    ?>
    <div class="dokan-form-group">
        <label for="extra-field">Extra Field</label>
        <input type="text" name="extra_field" id="extra-field" class="dokan-form-control" />
    </div>
    <?php
}
add_action( 'dokan_new_product_added', 'dokan_add_extra_product_field' );

Метод 2: изменение структуры базы данных
Если вам требуется постоянное дополнительное поле, вы можете рассмотреть возможность изменения структуры базы данных для его размещения. Вам потребуется создать новый столбец в таблице «wp_posts» для хранения дополнительной информации о продукте. Вот пример:

function dokan_add_extra_field_column() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'posts';

    $wpdb->query( "ALTER TABLE $table_name ADD extra_field VARCHAR(255) NOT NULL" );
}
register_activation_hook( __FILE__, 'dokan_add_extra_field_column' );

Метод 3: использование настраиваемых полей
WordPress предоставляет встроенную функцию, называемую настраиваемыми полями, которая позволяет добавлять в сообщения дополнительные данные, включая продукты. Вы можете использовать эту функцию, чтобы добавить дополнительное поле в продукты Dokan. Вот пример:

function dokan_add_extra_product_field() {
    ?>
    <div class="dokan-form-group">
        <label for="extra-field">Extra Field</label>
        <input type="text" name="extra_field" id="extra-field" class="dokan-form-control" value="<?php echo esc_attr( get_post_meta( $post->ID, 'extra_field', true ) ); ?>" />
    </div>
    <?php
}
add_action( 'dokan_new_product_added', 'dokan_add_extra_product_field' );
function dokan_save_extra_product_field( $product_id ) {
    if ( isset( $_POST['extra_field'] ) ) {
        update_post_meta( $product_id, 'extra_field', sanitize_text_field( $_POST['extra_field'] ) );
    }
}
add_action( 'dokan_new_product_added', 'dokan_save_extra_product_field' );

Следуя этим методам, вы можете добавить в Dokan дополнительное поле продукта, расширив его функциональность электронной коммерции в соответствии с вашими конкретными требованиями. Независимо от того, решите ли вы использовать перехватчики и фильтры, изменить структуру базы данных или использовать настраиваемые поля, Dokan обеспечивает гибкость настройки.