Вам требуется изменить ссылку кнопки в зависимости от выбранной категории товара в WooCommerce. Для достижения этой цели, вам нужно использовать хуки и функции WooCommerce.
Первым шагом является добавление дополнительного поля категории товара. Для этого вы можете использовать функцию add_action
, чтобы добавить новое поле категории товара. Вот пример кода, который можно разместить в файле functions.php
вашей активной темы WordPress:
function custom_category_field() { ?> <div class="form-field"> <label for="custom_field"><?php _e( 'Custom Field', 'woocommerce' ); ?></label> <input type="text" class="short" name="custom_field" id="custom_field" value=""/> <p class="description"><?php _e( 'Enter custom field value.', 'woocommerce' ); ?></p> </div> <?php } add_action( 'product_cat_add_form_fields', 'custom_category_field', 10, 2 ); add_action( 'product_cat_edit_form_fields', 'custom_category_field', 10, 2 ); function save_custom_category_field( $term_id, $tt_id ) { if ( isset( $_POST['custom_field'] ) ) { $custom_field = sanitize_text_field( $_POST['custom_field'] ); update_term_meta( $term_id, 'custom_field', $custom_field ); } } add_action( 'edited_product_cat', 'save_custom_category_field', 10, 2 ); add_action( 'create_product_cat', 'save_custom_category_field', 10, 2 );
Вышеуказанный код добавит новое поле с именем "Custom Field" в админ-панель WooCommerce для каждой категории товара.
Далее вам нужно изменить ссылку кнопки на странице товара, используя фильтр woocommerce_loop_add_to_cart_link
. Этот фильтр позволяет изменить HTML-код кнопки добавления товара в корзину. Вот пример кода, который можно разместить в вашем файле functions.php
:
function custom_add_to_cart_button( $button_html, $product ) { $category = get_the_terms( $product->get_id(), 'product_cat' ); // получаем категориюи товара $category_slug = $category[0]->slug; // получаем slug категории товара $custom_field_value = get_term_meta( $category[0]->term_id, 'custom_field', true ); // получаем значение поля "Custom Field" для категории // заменяем ссылку кнопки, добавляем значение категории и значения поля "Custom Field" $button_html = str_replace( 'href=', 'href="/' . $category_slug . '/' . $custom_field_value . '"', $button_html ); return $button_html; } add_filter( 'woocommerce_loop_add_to_cart_link', 'custom_add_to_cart_button', 10, 2 );
В приведенном выше коде мы получаем значение категории и значения поля "Custom Field" для товара, затем изменяем ссылку кнопки на нужную, используя это значение.
После размещения этого кода, ссылка кнопки будет заменяться относительно категории выбранного товара в WooCommerce. Пожалуйста, обратите внимание, что приведенный код является основным и может потребоваться дополнительная настройка в зависимости от вашей темы.