У меня есть сайт Wordpress/WooCommerce, в котором отображаются категоризированные продукты. Я пытаюсь создать настраиваемое поле в разделе «Администрирование отдельных категорий» (бэкэнд), где я могу установить начало и конецвремя, связанное с наличием доступной категории товаров.Категории товаров пользовательских полей WooCommerce - Ограничения на время покупки
Как это должно работать:
Клиенты могли приобрести только продукты, категория «открыта» (между начальным и конечным временем, установленным в этой категории), но все продукты будут все еще видны, даже если они не продажный.
Мне было интересно, есть ли у кого-то представление о наилучшем способе начать и добиться этого.
На данный момент здесь находится соответствующий код, который у меня есть:
function custom_product_taxonomy_add_new_meta_field() { //add term page
//this will add the custom meta field to the add new term page
?>
<div class="form-field">
<label for="term_meta[custom_term_meta]"><?php _e('Post Code(s)'); ?></label>
<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="">
<p class="description"><?php _e('Enter the delivery post codes available for this store.','my-text-domain'); ?></p>
</div>
<?php
}
add_action('product_cat_add_form_fields', 'custom_product_taxonomy_add_new_meta_field', 10, 2);
//edit term page
function custom_product_taxonomy_edit_meta_field($term) {
//put the term ID into a variable
$t_id = $term->term_id;
//retrieve the existing value(s) for this meta field. This returns an array
$term_meta = get_option("taxonomy_$t_id"); ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="term_meta[custom_term_meta]"><?php _e('Post Code(s)'); ?></label></th>
<td>
<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr($term_meta['custom_term_meta']) ? esc_attr($term_meta['custom_term_meta']) : ''; ?>">
<p class="description"><?php _e('Enter the delivery post codes available for this store.'); ?></p>
</td>
</tr>
<?php
}
add_action('product_cat_edit_form_fields', 'custom_product_taxonomy_edit_meta_field', 10, 2);
//save extra taxonomy fields callback function.
function save_taxonomy_custom_meta($term_id) {
if (isset($_POST['term_meta'])) {
$t_id = $term_id;
$term_meta = get_option("taxonomy_$t_id");
$cat_keys = array_keys($_POST['term_meta']);
foreach ($cat_keys as $key) {
if (isset ($_POST['term_meta'][$key])) {
$term_meta[$key] = $_POST['term_meta'][$key];
}
}
update_option("taxonomy_$t_id", $term_meta); //save the option array.
}
}
add_action('edited_product_cat', 'save_taxonomy_custom_meta', 10, 2);
add_action('create_product_cat', 'save_taxonomy_custom_meta', 10, 2);
Этот код добавляет пользовательское поле в админ категории страниц, но, как я уже говорил раньше, я ищу настраиваемое поле, где я может установить начальное и конечное время.
Пожалуйста, любые предложения приветствуются, поскольку я был на этом несколько недель и просто искал решения.
Заранее спасибо.
А-М-A-Z-I-N-G! Это невероятно хорошо! Спасибо, ацтек! –