Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save Yorlinq/5356a3bc10cdfe2607aafbd50e66fea9 to your computer and use it in GitHub Desktop.

Select an option

Save Yorlinq/5356a3bc10cdfe2607aafbd50e66fea9 to your computer and use it in GitHub Desktop.

Revisions

  1. Yorlinq created this gist Jul 27, 2022.
    175 changes: 175 additions & 0 deletions Add YOOtheme's Uikiit styling - Advanced Custom Fields
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,175 @@
    function yl_deregister_acf_styles() {
    // Deregister ACF Form style
    wp_deregister_style('acf-global');
    wp_deregister_style('acf-input');

    // Avoid dependency conflict
    wp_register_style('acf-global', false);
    wp_register_style('acf-input', false);
    }

    add_action('wp_enqueue_scripts', 'yl_deregister_acf_styles');


    function yl_deregister_acf_extended_styles() {
    // Deregister ACF Form style
    wp_dequeue_style('acf-extended');
    wp_deregister_style('acf-extended');

    // Avoid dependency conflict
    wp_enqueue_style('acf-extended', false);
    wp_register_style('acf-extended', false);

    // Deregister ACF Form style
    wp_dequeue_style('acf-extended-input');
    wp_deregister_style('acf-extended-input');

    // Avoid dependency conflict
    wp_enqueue_style('acf-extended-input', false);
    wp_register_style('acf-extended-input', false);
    }

    add_action('acf/input/admin_enqueue_scripts', 'yl_deregister_acf_extended_styles');


    function yl_deregister_acf_extended_pro_styles() {
    // Deregister ACF Form style
    wp_dequeue_style('acf-extended-pro');
    wp_deregister_style('acf-extended-pro');

    // Avoid dependency conflict
    wp_enqueue_style('acf-extended-pro', false);
    wp_register_style('acf-extended-pro', false);

    // Deregister ACF Form style
    wp_dequeue_style('acf-extended-pro-input');
    wp_deregister_style('acf-extended-pro-input');

    // Avoid dependency conflict
    wp_enqueue_style('acf-extended-pro-input', false);
    wp_register_style('acf-extended-pro-input', false);
    }

    add_action('acf/input/admin_enqueue_scripts', 'yl_deregister_acf_extended_pro_styles');


    function yl_add_acf_field_class_select($field) {
    // Target ACF Form Front only
    if(is_admin() && !wp_doing_ajax())
    return $field;

    // Add .form-control on fields
    $field['class'] .= 'uk-select';

    return $field;
    }

    add_filter('acf/prepare_field/type=select', 'yl_add_acf_field_class_select');


    function yl_add_acf_field_class_textarea($field) {
    // Target ACF Form Front only
    if(is_admin() && !wp_doing_ajax())
    return $field;

    // Add .form-control on fields
    $field['class'] .= 'uk-textarea';

    return $field;
    }

    add_filter('acf/prepare_field/type=textarea', 'yl_add_acf_field_class_textarea');


    function yl_add_acf_field_class_text($field){
    // Target ACF Form Front only
    if(is_admin() && !wp_doing_ajax())
    return $field;

    // Add .form-control on fields
    $field['class'] .= 'uk-input';

    return $field;
    }

    add_filter('acf/prepare_field/type=text', 'yl_add_acf_field_class_text');
    add_filter('acf/prepare_field/type=number', 'yl_add_acf_field_class_text');
    add_filter('acf/prepare_field/type=email', 'yl_add_acf_field_class_text');


    function yl_add_acf_field_class_acfe_image_selector($field) {
    // Target ACF Form Front only
    if(is_admin() && !wp_doing_ajax())
    return $field;

    // Add .form-control on fields
    $field['class'] .= 'uk-radio';

    return $field;
    }

    add_filter('acf/prepare_field/type=acfe_image_selector', 'yl_add_acf_field_class_acfe_image_selector');


    // Customization to datepicker and timepicker
    function yl_add_acf_field_class_via_javascript() {
    ?>

    <script type="text/javascript">
    (function($) {

    // Check ACF
    if(typeof acf === 'undefined')
    return;
    // Date picker & Google Maps compatibility
    $('.acf-google-map input.search, .acf-date-picker input.input, .acf-time-picker input.input').addClass('uk-input');

    // Clean errors on submission
    acf.addAction('validation_begin', function($form){
    $form.find('.acf-error-message').remove();
    });

    // Add alert alert-danger & move below field
    acf.addAction('invalid_field', function(field){
    field.$el.find('.acf-notice.-error').addClass('uk-alert uk-alert-danger').insertAfter(field.$el.find('.acf-input'));
    });

    })(jQuery);
    </script>

    <script type="text/javascript">

    (function($) {

    acf.add_filter('time_picker_args', function( args, $field ) {
    args['showSecond'] = false;
    args['timeFormat'] = 'HH:mm';
    args['stepMinute'] = 5;

    return args;

    });

    })(jQuery);

    </script>

    <?php
    }

    add_action('acf/input/admin_footer', 'yl_add_acf_field_class_via_javascript');
    add_action( 'admin_enqueue_scripts', 'yl_add_acf_field_class_via_javascript' );


    function yl_choose_fields_for_read_only($field) {
    $field['readonly'] = 1;
    return $field;
    }

    add_filter('acf/load_field/type=date_picker', 'yl_choose_fields_for_read_only');
    add_filter('acf/load_field/type=time_picker', 'yl_choose_fields_for_read_only');


    // Accept shortcodes in text and textarea fields
    add_filter('acf/format_value/type=textarea', 'do_shortcode');
    add_filter('acf/format_value/type=text', 'do_shortcode');