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 обеспечивает гибкость настройки.