[Инфо] Wordpress: плюшки файла functions.PHP ))

Тема в разделе "Wordpress", создана пользователем Красавчег, 10 окт 2012.

Модераторы: DzSoft, Sorcus
  1. ezh88

    ezh88 Создатель

    Регистр.:
    26 янв 2016
    Сообщения:
    33
    Симпатии:
    3
    Ага, работает, спасибо! :)

    А может всё запхать, что выше из кода?
    Взял отсюда :)
     
  2. Myles

    Myles Создатель

    Регистр.:
    11 июн 2015
    Сообщения:
    13
    Симпатии:
    2
    А можно - ли как - то скрывать/показывать поля регистрации на странице оформления заказа в зависимости от способа доставки?
     
    dana77 нравится это.
  3. Nightfaust

    Nightfaust Постоялец

    Регистр.:
    4 апр 2013
    Сообщения:
    53
    Симпатии:
    22
    А тему прочитать никак? Хотя-бы первый пост.
    Для справки functions.php подключается во время инициализации текущей темы, после того, как подключены все функции WordPress и все активные плагины.
    Модификация файла расширяет возможности темы/убирает ненужный функционал etc.
     
    dana77 нравится это.
  4. unnell

    unnell Создатель

    Регистр.:
    28 июл 2013
    Сообщения:
    15
    Симпатии:
    7
    Доп поля при оформлении заказа
    Код:
    
    
    
    
    
    
    
    // Add a new checkout field
    function kia_filter_checkout_fields($fields){
        $fields['extra_fields'] = array(
                'f1' => array('type' => 'text', 'required'      => false, 'label' => 'Название компании'),
                'f2' => array('type' => 'text', 'required'      => false, 'label' => 'Юридический адрес'),
                'f3' => array('type' => 'number', 'required'      => false, 'label' => 'ИНН'),
                'f4' => array('type' => 'number', 'required'      => false, 'label' => 'КПП'),
                'f5' => array('type' => 'text', 'required'      => false, 'label' => 'Контактное лицо'),
                'f6' => array('type' => 'email', 'required'      => false, 'label' => 'E-Mail'),
                'f7' => array('type' => 'text', 'required'      => false, 'label' => 'Телефон'),
                'f8' => array('type' => 'text', 'required'      => false, 'label' => 'Факс'),
                'f9' => array('type' => 'number', 'required'      => false, 'label' => 'Индекс'),
                'f10' => array('type' => 'text', 'required'      => false, 'label' => 'Местоположение'),
                'f11' => array('type' => 'textarea', 'required'      => false, 'label' => 'Адрес доставки'),
        );
        return $fields;
    }
    add_filter( 'woocommerce_checkout_fields', 'kia_filter_checkout_fields' );
    
    // display the extra field on the checkout form
    function kia_extra_checkout_fields(){
    
        $checkout = WC()->checkout(); ?>
    
        <div class="extra-fields">
            <div class="row clicker" ><h3>Юридическим лицам</h3> <i class="fa fa-angle-down"></i><i class="fa fa-angle-up" aria-hidden="true"></i></div>
            <div class="hide09">
                <?php foreach ( $checkout->checkout_fields['extra_fields'] as $key => $field ) : ?>
                    <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
                <?php endforeach; ?>
            </div>
        </div>
    
    <?php }
    
    
    
    
    
    add_action( 'woocommerce_checkout_after_customer_details' ,'kia_extra_checkout_fields' );
    
    // save the extra field when checkout is processed
    function kia_save_extra_checkout_fields( $order_id, $posted ){
       
        $checkout = WC()->checkout();
       
         foreach ( $checkout->checkout_fields['extra_fields'] as $key => $field ) :
            if( isset( $posted[$key] ) ) { update_post_meta( $order_id, '_'.$key, sanitize_text_field( $posted[$key] ) ); }
        endforeach;
    
    }
    add_action( 'woocommerce_checkout_update_order_meta', 'kia_save_extra_checkout_fields', 10, 2 );
    
    // display the extra data in the order admin panel
    function kia_display_order_data_in_admin( $order ){
    
    $ar = array(1=>'Название компании',  'Юридический адрес', 'ИНН', 'КПП', 'Контактное лицо', 'E-Mail', 'Телефон', 'Факс', 'Индекс', 'Местоположение', 'Адрес доставки');
    
    ?>
        <div class="order_data_column">
            <h4>Юридическим лицам</h4>
            <?php
            for($i = 1;$i <= 11; $i++){
                echo '<p><strong>' .$ar[$i] . ':</strong>' . get_post_meta( $order->id, '_f'.$i, true ) . '</p>';
            } ?>
        </div>
    <?php }
    add_action( 'woocommerce_admin_order_data_after_order_details', 'kia_display_order_data_in_admin' );
    
     
    dana77 нравится это.
  5. leoNeo

    leoNeo Постоялец

    Регистр.:
    29 мар 2016
    Сообщения:
    140
    Симпатии:
    18
    А можно также редактировать ширину сайдбара?
     
    dana77 нравится это.
  6. Myles

    Myles Создатель

    Регистр.:
    11 июн 2015
    Сообщения:
    13
    Симпатии:
    2
  7. lilsame

    lilsame Создатель

    Регистр.:
    28 авг 2011
    Сообщения:
    32
    Симпатии:
    24
    это в шаблоне дело, нужно посмотреть сам сайт
     
  8. Myles

    Myles Создатель

    Регистр.:
    11 июн 2015
    Сообщения:
    13
    Симпатии:
    2
    Сам сайт вот - http://paradisefruit.com.ua/shop. Или нужен доступ в админку?
    Шаблон 8theme - XStore

    И сразу ещё один вопрос
    Можно - ли как - то сделать, чтобы в админке, при отображении истории заказов, цвет строки был разный в зависимости от статуса заказа. Например, выполненный - чёрный, в обработке - красный, отменён - бледно-серый?
    [​IMG]
     
  9. mischael1

    mischael1 Создатель

    Регистр.:
    2 май 2013
    Сообщения:
    31
    Симпатии:
    7
    вот эта штука, вроде, умеет
    Advanced WooCommerce Order Status & Action Manager + Colorize filtering on Order List
     
  10. ezh88

    ezh88 Создатель

    Регистр.:
    26 янв 2016
    Сообщения:
    33
    Симпатии:
    3
    ------------------------------------------------------------------------
    Как открывать все внешние ссылки в новом окне
    ------------------------------------------------------------------------
    // Открывать внешние ссылки в новом окне
    function autoblank($text) {
    $return = str_replace('href=', 'target="_blank" href=', $text);
    $return = str_replace('target="_blank" href="http://site.ru', 'href="http://site.ru', $return);
    $return = str_replace('target="_blank" href="/', 'href="/', $return);
    $return = str_replace('target="_blank" href="#', 'href="#', $return);
    $return = str_replace(' target = "_blank">', '>', $return);
    return $return;
    }
    add_filter('the_content', 'autoblank');
    add_filter('comment_text', 'autoblank');