Plugin Directory

Changeset 3393233


Ignore:
Timestamp:
11/10/2025 09:05:04 PM (5 months ago)
Author:
protport4991
Message:

1.2.0

Tested PHP to 8.2
Tested Wordpress to 6.8.3
Tested Woocommerce to 10.3.4
Branch field is not required unless Nova Poshta is selected
Added settings link on plugins page
Updating styles

Location:
wc-nova-poshta-for-shop
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • wc-nova-poshta-for-shop/Classes/CheckoutField.php

    r2953197 r3393233  
    77    }
    88
    9 
    10     function npfw_add_to_wooc_fields( $fields ) {
    11         $options = get_option( 'my_option_name' );
     9    public function npfw_add_to_wooc_fields( $fields ) {
     10        $options = get_option( 'npfw_my_option_name' );
    1211        $enable_loader              = !(empty($options['enable_loader'])) ? 'is-loader' : '';
    1312        $class_warehouses_wrapper   = !empty($options['class_warehouses_wrapper']) ? $options['class_warehouses_wrapper'] : '';
    1413        $class_warehouses_select    = !empty($options['class_warehouses_select']) ? $options['class_warehouses_select'] : '';
    1514       
    16         if($options['output_fields'] == 'output_fields1'){
    17             $fields['billing']['billing_warehouses'] = array(
    18                 'type'      => 'select',
    19                 'options'   => array(
    20                     ''      => __('Please select warehouses','npfw')
    21                 ),
    22                 'label'     => __('Warehouses', 'npfw'),
    23                 'required'  => true,
    24                 'class'     => array($class_warehouses_wrapper),
    25                 'input_class' => array('billing_warehouses_sumoselect'.' '.$enable_loader.' '. $class_warehouses_select),
    26                 'clear'     => true,
    27                 'priority'  => 75
    28             );
    29         }
    30         else if($options['output_fields'] == 'output_fields2'){
    31             $fields['billing']['billing_np_city'] = array(
    32                 'label'     => __('City', 'npfw'),
    33                 'placeholder' => __('Please select city', 'npfw'),
    34                 'required'  => true,
    35                 'class'     => array('form-row-wide'),
    36                 'clear'     => true,
    37                 'priority'  => 190
    38             );
     15        $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
     16        $chosen_method = !empty($chosen_methods[0]) ? $chosen_methods[0] : '';
    3917
    40             $fields['billing']['billing_warehouses'] = array(
    41                 'type'      => 'select',
    42                 'placeholder' => __('Please select warehouses', 'npfw'),
    43                 'options'   => array(
    44                     ''      => __('Please select warehouses', 'npfw'),
    45                 ),
    46                 'label'     => __('Warehouses', 'npfw'),
    47                 'required'  => true,
    48                 'class'     => array($class_warehouses_wrapper),
    49                 'input_class' => array('billing_warehouses_sumoselect'.' '.$enable_loader.' '. $class_warehouses_select),
    50                 'clear'     => true,
    51                 'priority'  => 200
    52             );
    53         }
     18        $is_novaposhta = strpos($chosen_method, 'novaposhta') !== false;
     19
     20        if(!empty(get_option( 'npfw_my_option_name' ))){   
     21            if($options['output_fields'] == 'output_fields1'){
     22                $wrapper_class = array('npfw-conditional-field');
     23                if(!empty($class_warehouses_wrapper)) {
     24                    $wrapper_class[] = $class_warehouses_wrapper;
     25                }
     26               
     27                if(!$is_novaposhta) {
     28                    $wrapper_class[] = 'npfw-hidden';
     29                }
     30               
     31                $fields['billing']['billing_warehouses'] = array(
     32                    'type'      => 'select',
     33                    'options'   => array(
     34                        ''      => __('Please select warehouses','npfw')
     35                    ),
     36                    'label'     => __('Warehouses', 'npfw'),
     37                    'required'  => $is_novaposhta,
     38                    'class'     => $wrapper_class,
     39                    'input_class' => array('billing_warehouses_sumoselect'.' '.$enable_loader.' '. $class_warehouses_select),
     40                    'clear'     => true,
     41                    'priority'  => 75
     42                );
     43            }
     44           
     45            // else if($options['output_fields'] == 'output_fields2'){
     46            //  $fields['billing']['billing_np_city'] = array(
     47            //         'label'     => __('City', 'npfw'),
     48            //         'placeholder' => __('Please select city', 'npfw'),
     49            //      'required'  => true,
     50            //      'class'     => array('form-row-wide'),
     51            //      'clear'     => true,
     52            //      'priority'  => 190
     53            //     );
     54
     55            //     $fields['billing']['billing_warehouses'] = array(
     56            //      'type'      => 'select',
     57            //      'placeholder' => __('Please select warehouses', 'npfw'),
     58            //      'options'   => array(
     59            //          ''      => __('Please select warehouses', 'npfw'),
     60            //      ),
     61            //         'label'     => __('Warehouses', 'npfw'),
     62            //      'required'  => true,
     63            //      'class'     => array($class_warehouses_wrapper),
     64            //      'input_class' => array('billing_warehouses_sumoselect'.' '.$enable_loader.' '. $class_warehouses_select),
     65            //      'clear'     => true,
     66            //      'priority'  => 200
     67            //     );
     68            // }
     69        }
    5470
    5571       
    56         unset($fields['billing']['billing_postcode']);
     72        // unset($fields['billing']['billing_postcode']);
    5773
    5874        return $fields;
  • wc-nova-poshta-for-shop/Classes/Shortcode.php

    r2953197 r3393233  
    44class NPFW_Shortcode {
    55
    6 
    7     function npfw_shortcode_output($html_field) {
    8         $options = get_option( 'my_option_name' );
     6    public function npfw_shortcode_output($html_field) {
     7        $options = get_option( 'npfw_my_option_name' );
    98        $class_warehouses_select = !empty($options['class_warehouses_select']) ? $options['class_warehouses_select'] : '';
    109        $html = '';
  • wc-nova-poshta-for-shop/assets_file/css/style.css

    r2953197 r3393233  
    11#billing_warehouses_field .SumoSelect{
    22    width: 100%;
     3    display: block;
    34}
    45#billing_warehouses_field.is-loader,#billing_city_field.is-loader{
     
    910    z-index: 9;
    1011    content: '';
    11     right: 30px;
    12     top: 30px;
     12    right: 20px;
    1313    width: 30px;
    1414    height: 30px;
     15    bottom: 12px;
    1516    background: url('../image/ajax_loader_s.gif') no-repeat;
    1617}
     
    1819    position: relative;
    1920}
    20 #billing_city.is-loader,#billing_np_city.is-loader{
    2121
    22 }
    2322.wrapper_city_np {
    2423    position: absolute;
    25     top: 70px;
    2624    left: 0px;
    2725    width: 100%;
    2826    z-index: 99;
     27    /* top: 75px; */
     28    overflow: hidden;
    2929}
    3030
     
    3939    padding-left: 10px;
    4040    line-height: 36px;
     41    border-bottom: 1px solid white;
    4142    /* z-index: 9999; */
    4243}
     
    4546    cursor: pointer;
    4647}
     48.sumo_billing_warehouses ul li{
     49    color: #666 !important;
     50    padding: 0px 8px;
     51}
     52.SumoSelect>.CaptionCont>span{
     53    padding: .9rem 1.1rem;
     54    font-size: var(--wp--preset--font-size--small);
     55}
     56.SumoSelect>.CaptionCont{
     57    height: 50px;
     58    padding: 0px;
     59}
     60.SumoSelect>.CaptionCont>label>i{
     61    display: none;
     62}
     63.SumoSelect>.optWrapper>.options li.opt {
     64    font-size: var(--wp--preset--font-size--small);
     65}
     66.SumoSelect>.optWrapper>.options li.opt label{
     67    margin-bottom: 0px;
     68}
     69.SumoSelect.open>.optWrapper{
     70    top: auto;
     71}
  • wc-nova-poshta-for-shop/assets_file/js/custom.js

    r2953197 r3393233  
    11jQuery(document).ready(function(){
     2
     3    function toggleWarehousesField() {
     4        var selectedMethod = jQuery('input[name="shipping_method[0]"]:checked').val();
     5        var $warehousesField = jQuery('#billing_warehouses_field');
     6       
     7        console.log(selectedMethod);
     8        if (selectedMethod && selectedMethod.indexOf('novaposhta') !== -1) {
     9            $warehousesField.show();
     10            jQuery('#billing_warehouses').prop('required', true);
     11        } else {
     12            $warehousesField.hide();
     13            jQuery('#billing_warehouses').prop('required', false);
     14        }
     15    }
     16
     17    toggleWarehousesField();
     18
     19    // Виконати при зміні методу доставки
     20    jQuery(document.body).on('change', 'input[name="shipping_method[0]"]', function() {
     21        toggleWarehousesField();
     22    });
     23
     24    // Виконати після оновлення checkout через AJAX
     25    jQuery(document.body).on('updated_checkout', function() {
     26        toggleWarehousesField();
     27    });
     28
    229    // ajax get city
    3 
    430    function npfw_keyup_delay(callback, ms) {
    531      var timer = 0;
     
    1137        if(billing_city.length > 2){
    1238            if(jQuery('#billing_warehouses').hasClass('is-loader')){
    13                 console.log('zaq');
     39                // console.log('zaq');
    1440                jQuery('#billing_city_field').addClass('is-loader');
    1541            }
    16              console.log('zaq!QQQ');
    1742 
    1843            jQuery.ajax({
     
    130155
    131156    // jQuery(document).on('change','#ship-to-different-address',function() {
     157    //     var city_ref = jQuery('#billing_city,#billing_np_city').attr('data-cityref');
     158    //     console.log('test');
    132159    //     jQuery.ajax({
    133160    //         url:myajax.url,
    134161    //         data: {
    135     //             'action' : 'get_document_price'
     162    //             'action' : 'get_document_price',
     163    //             'city_ref': city_ref
    136164    //         },
    137165    //         type:'POST',
  • wc-nova-poshta-for-shop/includes/enqueue-front.php

    r2953197 r3393233  
    2828    }
    2929
    30 
    31 
    32 
    33 
    34    
    35    
    36 
    3730?>
  • wc-nova-poshta-for-shop/readme.txt

    r2953197 r3393233  
    77Tested up to: 6.3
    88Requires PHP: 5.6
    9 Stable tag: 1.1.1
     9Stable tag: 1.2.0
    1010License: GPLv2 or later
    1111License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    6363Change descriptions
    6464
     65
     66= 1.1.2 =
     67Fix bugs
     68
     69= 1.1.3 =
     70Fix bugs
     71Update version
     72
     73= 1.1.4 =
     74Tested php to 8.1
     75
     76= 1.2.0 =
     77Tested PHP to 8.2
     78Tested Wordpress to 6.8.3
     79Tested Woocommerce to 10.3.4
     80Branch field is not required unless Nova Poshta is selected
     81Added settings link on plugins page
     82Updating styles
  • wc-nova-poshta-for-shop/views/settings.php

    r2953197 r3393233  
    1010        do_settings_sections(  'npw_submenu-page' );
    1111       
    12         $options = get_option( 'my_option_name' );
     12        $options = get_option( 'npfw_my_option_name' );
    1313        $class_warehouses_select    = !(empty($options['class_warehouses_select'])) ? $options['class_warehouses_select'] : '';
    1414        $class_warehouses_wrapper   = !(empty($options['class_warehouses_wrapper'])) ? $options['class_warehouses_wrapper'] : '';
     
    1616        $city_send                  = !(empty($options['city_send'])) ? $options['city_send'] : '';
    1717        $region_send                = !(empty($options['region_send'])) ? $options['region_send'] : '';
    18          ?>
     18        $city_sender                = !(empty($options['city_sender'])) ? $options['city_sender'] : '';
     19        $api_key                    = !(empty($options['api_key'])) ? $options['api_key'] : '';
     20        $languague                  = !(empty($options['languague'])) ? $options['languague'] : '';
     21        $output_fields              = !(empty($options['output_fields'])) ? $options['output_fields'] : '';
     22
     23     
     24        ?>
    1925        <div class="item_form_np">
    2026            <label style="width: 220px; display: inline-block;"><?php _e('Api key','npfw'); ?></label>
    21             <input style="width: 260px;" type='text' name='my_option_name[api_key]' value='<?php echo $options['api_key']; ?>'>
     27            <input style="width: 260px;" type='text' name='npfw_my_option_name[api_key]' value='<?php echo $api_key; ?>'>
    2228        </div>
    2329       
    2430        <div class="item_form_np">
    2531            <label style="width: 220px; display: inline-block;"><?php _e('Select languague','npfw'); ?></label>
    26             <input type="radio" name="my_option_name[languague]" value="Ua" <?php checked('Ua', $options['languague']); ?>>Ukraine
    27             <input type="radio" name="my_option_name[languague]" value="Ru" <?php checked('Ru', $options['languague']); ?>>Russian
     32            <input type="radio" name="npfw_my_option_name[languague]" value="Ua" <?php checked('Ua', $languague); ?>>Ukraine
     33            <input type="radio" name="npfw_my_option_name[languague]" value="Ru" <?php checked('Ru', $languague); ?>>Russian
    2834        </div>
    2935        <div class="item_form_np">
    3036            <label style="width: 220px; display: inline-block;"><?php _e('Output fields','npfw'); ?></label>
    31             <input type="radio" name="my_option_name[output_fields]" value="output_fields1" <?php checked('output_fields1', $options['output_fields']); ?>>Standart (Woocommerce)
    32             <input type="radio" name="my_option_name[output_fields]" value="output_fields2" <?php checked('output_fields2', $options['output_fields']); ?>>Custom fields
    33             <input type="radio" name="my_option_name[output_fields]" value="output_fields3" <?php checked('output_fields3', $options['output_fields']); ?>>Shortcode
     37            <input type="radio" name="npfw_my_option_name[output_fields]" value="output_fields1" <?php checked('output_fields1', $output_fields); ?>>Standart (Woocommerce)
     38            <!-- <input type="radio" name="npfw_my_option_name[output_fields]" value="output_fields2" <?php checked('output_fields2', $output_fields); ?>>Custom fields -->
     39            <input type="radio" name="npfw_my_option_name[output_fields]" value="output_fields3" <?php checked('output_fields3', $output_fields); ?>>Shortcode
    3440        </div>
    3541
    3642        <div class="item_form_np">
    3743            <label style="width: 220px; display: inline-block;"><?php _e('Enable loader','npfw'); ?></label>
    38             <input type="checkbox" name="my_option_name[enable_loader]" value="1" <?php echo !empty($options['enable_loader']) ? 'checked' : ''; ?>>
     44            <input type="checkbox" name="npfw_my_option_name[enable_loader]" value="1" <?php echo !empty($options['enable_loader']) ? 'checked' : ''; ?>>
    3945        </div>
    4046
     47        <?/*<div class="item_form_np">
     48            <label style="width: 220px; display: inline-block;"><?php _e('City Sender ','npfw'); ?></label>
     49            <input type="text" name="my_option_name[city_sender]" value='<?php echo $class_warehouses_select; ?>'>
     50        </div>*/?>
    4151
    4252        <div class="item_form_np">
    4353            <label style="width: 220px; display: inline-block;"><?php _e('Add html class to select warhouse','npfw'); ?></label>
    44             <input style="width: 260px;" type='text' name='my_option_name[class_warehouses_select]' value='<?php echo $class_warehouses_select; ?>'>
     54            <input style="width: 260px;" type='text' name='npfw_my_option_name[class_warehouses_select]' value='<?php echo $city_sender; ?>'>
    4555        </div>
    4656        <?/* <div class="item_form_np">
Note: See TracChangeset for help on using the changeset viewer.