// ---Перехватываем---
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// ---Перехватываем пропускаем через фильтр---
function custom_override_checkout_fields( $fields ) {
$fields['order']['order_comments']['placeholder'] = 'Новый текст в примечании к товару';
$fields['order']['order_comments']['label'] = 'Новое название этого поля';
return $fields;
}
add_filter( 'woocommerce_checkout_fields' , 'no_required_checkout_fields' );
function no_required_checkout_fields( $fields ) {
$fields['billing']['billing_last_name']['required'] = false;
$fields['billing']['billing_address_1']['required'] = false;
$fields['billing']['billing_city']['required'] = false;
$fields['billing']['billing_postcode']['required'] = false;
return $fields;
}
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_first_name']); // удаляем поле с именем
return $fields;
}
$fields['billing']['your_field']['options'] = array(
'option_1' => 'Текст опции 1',
'option_2' => 'Текст опции 1'
);
add_filter('loop_shop_per_page', create_function('$cols', 'return 20;'));
add_filter('loop_shop_columns', 'loop_columns');
if (!function_exists('loop_columns')) {
function loop_columns() {
return 35;
}
}
remove_action( 'woocommerce_after_single_product', 'woocommerce_upsell_display');
add_action( 'woocommerce_after_single_product', 'woocommerce_output_upsells', 20);
if (!function_exists('woocommerce_output_upsells')) {
function woocommerce_output_upsells() {
woocommerce_upsell_display(3,3); // 3 товара в 3 колонки
}
}
function woocommerce_output_related_products() {
woocommerce_related_products(3,3); // 3 товара а 3 колонки
}
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10); // Убираем
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);
add_action('woocommerce_before_main_content', create_function('', 'echo "<div id=\"contentwrapper\"><div id=\"content\">";'), 10);
function divandsidebar_function(){
echo "</div></div>";
get_sidebar('left'); // после вызываем sidebar-left.php
}
add_action('woocommerce_after_main_content', 'divandsidebar_function', 10);
// Add save percent next to sale item prices.
add_filter( 'woocommerce_sale_price_html', 'woocommerce_custom_sales_price', 10, 2 );
function woocommerce_custom_sales_price( $price, $product ) {
$percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
return $price . sprintf( __(' Save %s', 'woocommerce' ), $percentage . '%' );
}
add_filter( 'manage_edit-product_sortable_columns', 'my_product_sorting_column' );
function my_product_sorting_column( $columns ) {
$columns['is_in_stock'] = 'in_stock';
return $columns;
}
add_action( 'pre_get_posts', 'my_product_sorting' );
function my_product_sorting( $query ) {
if( ! is_admin() )
return;
$orderby = $query->get( 'orderby');
if( 'in_stock' == $orderby ) {
$query->set('meta_key','_stock_status');
$query->set('orderby','meta_value');
}
}
Поздно сообразил сейчас поправлю.
могу дописать (тут играет моя пакостная натура) на мой взгляд нужно дать пищу а не решениеИ спасибо за развернутый ответ с кучей сниппетов, но где конкретный ответ на вопрос ТС? Нашел только как удалить "Имя".
/**
* Добавляем поле на страницу оформления заказа
*/
add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' );
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field"><h2>' . __('Мое поле') . '</h2>';
woocommerce_form_field( 'my_field_name', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'label' => __('Заполните это поле'),
'placeholder' => __('Введите здесь требуемый текст'),
), $checkout->get_value( 'my_field_name' ));
echo '</div>';
}
/**
* Выполнение формы заказа
*/
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
// Проверяем, заполнено ли поле, если же нет, добавляем ошибку.
if ( ! $_POST['my_field_name'] )
wc_add_notice( __( 'Пожалуйста, введите требуемый текст в наше новое замечательное поле.' ), 'error' );
}
/**
* Обновляем метаданные заказа со значением поля
*/
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['my_field_name'] ) ) {
update_post_meta( $order_id, 'My Field', sanitize_text_field( $_POST['my_field_name'] ) );
}
}
/**
* Выводим значение поля на странице редактирования заказа
*/
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
echo '<p><strong>'.__('Мое поле').':</strong> ' . get_post_meta( $order->id, 'My Field', true ) . '</p>';
}
/**
* Добавляем поле в письма заказа
**/
add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');
function my_custom_checkout_field_order_meta_keys( $keys ) {
$keys[‘My Field 1′] = ‘_my_field_1;
$keys[‘My Field 2′] = ‘_my_field_2′;
return $keys;
}
Дорогой Гость, Не упустите супер шанс!
Ошеломительное снижение на ПОЖИЗНЕННЫЙ статус "СВОЙ"
по цене 1 месяца за 499 руб.
Это доступ ко всем:
Цена всего для 1000 человек. Осталось 14 мест.
Позже цена уже удвоиться!
Не тяните и успейте получить доступ к всему по выгодной цене!