$font_awesome_icons, ); wp_localize_script( 'astra-widgets-backend', 'fontAwesomeIcons', $translation_array ); } } /** * Load Font Awesome Icons * * @since 1.0.0 */ public static function backend_load_font_awesome_icons() { if ( ! file_exists( ASTRA_WIDGETS_DIR . 'assets/fonts/icons.json' ) ) { return array(); } // Function has already run. if ( null !== self::$json ) { return self::$json; } // Used https://gist.github.com/Balachandark/048d40f8eb18a9a9c7623dc949ff8d1a to remove unwanted data from the JSON file. $str = file_get_contents( ASTRA_WIDGETS_DIR . 'assets/fonts/icons.json' ); self::$json = json_decode( $str, true ); // decode the JSON into an associative array. return self::$json; } /** * Check exiting fields have any repeater field? * * If found then return `true`. Default `false`. * * @param array $fields Fields array. * @return boolean Repeater field exist. */ function have_repeator_field( $fields = array() ) { foreach ( $fields as $key => $field ) { if ( 'repeater' === $field['type'] ) { return true; } } return false; } /** * Default icons color & bg color * * @return array $icons default icon color & bg color list */ public static function get_default_icons_colors() { $icons = array( 'facebook' => array( 'color' => '#ffffff', 'bg-color' => '#3b5998', ), 'facebook-f' => array( 'color' => '#ffffff', 'bg-color' => '#3b5998', ), 'facebook-square' => array( 'color' => '#ffffff', 'bg-color' => '#3b5998', ), 'facebook-messenger' => array( 'color' => '#ffffff', 'bg-color' => '#0084ff ', ), 'twitter' => array( 'color' => '#ffffff', 'bg-color' => '#55acee', ), 'twitter-square' => array( 'color' => '#ffffff', 'bg-color' => '#55acee', ), 'google-plus' => array( 'color' => '#ffffff', 'bg-color' => '#dd4b39', ), 'google-plus-square' => array( 'color' => '#ffffff', 'bg-color' => '#dd4b39', ), 'google-plus-g' => array( 'color' => '#ffffff', 'bg-color' => '#dd4b39', ), 'youtube' => array( 'color' => '#ffffff', 'bg-color' => '#ff0000', ), 'youtube-square' => array( 'color' => '#ffffff', 'bg-color' => '#ff0000', ), 'stumbleupon' => array( 'color' => '#ffffff', 'bg-color' => '#eb4924', ), 'stumbleupon-circle' => array( 'color' => '#ffffff', 'bg-color' => '#eb4924', ), 'whatsapp' => array( 'color' => '#ffffff', 'bg-color' => '#25D366', ), 'whatsapp-square' => array( 'color' => '#ffffff', 'bg-color' => '#25D366', ), 'dribbble' => array( 'color' => '#ffffff', 'bg-color' => '#ea4c89', ), 'dribbble-square' => array( 'color' => '#ffffff', 'bg-color' => '#ea4c89', ), 'flickr' => array( 'color' => '#ffffff', 'bg-color' => '#ff0084', ), 'foursquare' => array( 'color' => '#ffffff', 'bg-color' => '#f94877', ), 'slack' => array( 'color' => '#ffffff', 'bg-color' => '#3aaf85', ), 'slack-hash' => array( 'color' => '#ffffff', 'bg-color' => '#3aaf85', ), 'blogger' => array( 'color' => '#ffffff', 'bg-color' => '#f57d00', ), 'blogger-b' => array( 'color' => '#ffffff', 'bg-color' => '#f57d00', ), 'quora' => array( 'color' => '#ffffff', 'bg-color' => '#b92b27', ), 'linkedin' => array( 'color' => '#ffffff', 'bg-color' => '#007bb5', ), 'linkedin-square' => array( 'color' => '#ffffff', 'bg-color' => '#007bb5', ), 'linkedin-in' => array( 'color' => '#ffffff', 'bg-color' => '#007bb5', ), 'skype' => array( 'color' => '#ffffff', 'bg-color' => '#00AFF0', ), 'dropbox' => array( 'color' => '#ffffff', 'bg-color' => '#007ee5', ), 'wordpress' => array( 'color' => '#ffffff', 'bg-color' => '#21759b', ), 'wordpress-simple' => array( 'color' => '#ffffff', 'bg-color' => '#21759b', ), 'vimeo' => array( 'color' => '#ffffff', 'bg-color' => '#1ab7ea', ), 'vimeo-square' => array( 'color' => '#ffffff', 'bg-color' => '#1ab7ea', ), 'vimeo-v' => array( 'color' => '#ffffff', 'bg-color' => '#1ab7ea', ), 'slideshare' => array( 'color' => '#ffffff', 'bg-color' => '#0077b5', ), 'tumblr-square' => array( 'color' => '#ffffff', 'bg-color' => '#34465d', ), 'tumblr' => array( 'color' => '#ffffff', 'bg-color' => '#34465d', ), 'yahoo' => array( 'color' => '#ffffff', 'bg-color' => '#410093', ), 'yahoo' => array( 'color' => '#ffffff', 'bg-color' => '#410093', ), 'instagram' => array( 'color' => '#ffffff', 'bg-color' => '#e95950', ), 'whatsapp' => array( 'color' => '#ffffff', 'bg-color' => '#4dc247', ), 'whatsapp-in' => array( 'color' => '#ffffff', 'bg-color' => '#4dc247', ), 'pinterest' => array( 'color' => '#ffffff', 'bg-color' => '#cb2027', ), 'pinterest-p' => array( 'color' => '#ffffff', 'bg-color' => '#cb2027', ), 'pinterest-square' => array( 'color' => '#ffffff', 'bg-color' => '#cb2027', ), 'pinterest-square' => array( 'color' => '#ffffff', 'bg-color' => '#cb2027', ), 'reddit' => array( 'color' => '#ffffff', 'bg-color' => '#ff5700', ), 'reddit-alien' => array( 'color' => '#ffffff', 'bg-color' => '#ff5700', ), 'reddit-square' => array( 'color' => '#ffffff', 'bg-color' => '#ff5700', ), 'reddit-square' => array( 'color' => '#ffffff', 'bg-color' => '#ff5700', ), 'yelp' => array( 'color' => '#ffffff', 'bg-color' => '#af0606', ), 'behance' => array( 'color' => '#ffffff', 'bg-color' => '#131418', ), 'behance-square' => array( 'color' => '#ffffff', 'bg-color' => '#131418', ), ); return $icons; } /** * Generate fields. * * @param object $self Widget object. * @param array $fields Fields array. * @param string $repeater_id Repeater ID. * @return void */ function generate( $self, $fields = array(), $repeater_id = '' ) { $defaults = array( 'type' => '', 'id' => '', 'name' => '', 'default' => '', 'desc' => '', ); if ( ! empty( $fields ) && is_array( $fields ) ) { foreach ( $fields as $key => $value ) { $value = wp_parse_args( $value, $defaults ); $font_awesome_icons = self::backend_load_font_awesome_icons(); $class = isset( $value['class'] ) ? $value['class'] : ''; switch ( $value['type'] ) { case 'icon': $field_id = ''; $field_name = ''; $decoded_icon_data = json_decode( $value['default'] ); $encode_icon_data = $value['default']; if ( empty( $repeater_id ) || $this->have_repeator_field( $fields ) ) { $field_id = $self->get_field_id( $value['id'] ); $field_name = $self->get_field_name( $value['id'] ); } ?>
viewbox ) && ! empty( $decoded_icon_data->path ) ) { ?>
id="get_field_id( $value['id'] ) ); ?>" name="get_field_name( $value['id'] ) ); ?>" />
generate_repeater_fields( $self, $fields, $value ); ?>
id_base . '[' . $self->number . '][' . $value['id'] . ']'; ?>
have_repeator_field( $fields ) ) { $field_id = $self->get_field_id( $value['id'] ); $field_name = $self->get_field_name( $value['id'] ); } ?>
have_repeator_field( $fields ) ) { $field_id = $self->get_field_id( $value['id'] ); $field_name = $self->get_field_name( $value['id'] ); } ?>

Remove
Choose Image

class="widefat" type="radio" name="get_field_name( $value['id'] ); ?>" value="" />

have_repeator_field( $fields ) ) { $field_id = $self->get_field_id( $value['id'] ); $field_name = $self->get_field_name( $value['id'] ); } ?>


get_settings(); if ( array_key_exists( $self->number, $instances ) ) { $instance = $instances[ $self->number ]; if ( array_key_exists( $value['id'], $instance ) ) { $stored = $instance[ $value['id'] ]; $repeater_options = $value['options']; $repeater_fields = array(); foreach ( $repeater_options as $index => $field ) { foreach ( $stored as $stored_index => $stored_field ) { foreach ( $stored_field as $stored_field_id => $stored_field_value ) { if ( $stored_field_id === $field['id'] ) { $field['default'] = $stored_field_value; $repeater_fields[ $stored_index ][] = $field; } } } } // Generate field. foreach ( $repeater_fields as $index => $fields ) { ?>
generate( $self, $fields, $value['id'] ); ?>
generate( $self, $fields, $repeater_id ); } endif; /** * Parse CSS */ if ( ! function_exists( 'astra_widgets_parse_css' ) ) { /** * Parse CSS * * @param array $css_output Array of CSS. * @param string $min_media Min Media breakpoint. * @param string $max_media Max Media breakpoint. * @return string Generated CSS. */ function astra_widgets_parse_css( $css_output = array(), $min_media = '', $max_media = '' ) { $parse_css = ''; if ( is_array( $css_output ) && count( $css_output ) > 0 ) { foreach ( $css_output as $selector => $properties ) { if ( ! count( $properties ) ) { continue; } $temp_parse_css = $selector . '{'; $properties_added = 0; foreach ( $properties as $property => $value ) { if ( '' === $value ) { continue; } $properties_added++; $temp_parse_css .= $property . ':' . $value . ';'; } $temp_parse_css .= '}'; if ( $properties_added > 0 ) { $parse_css .= $temp_parse_css; } } if ( '' != $parse_css && ( '' !== $min_media || '' !== $max_media ) ) { $media_css = '@media '; $min_media_css = ''; $max_media_css = ''; $media_separator = ''; if ( '' !== $min_media ) { $min_media_css = '(min-width:' . $min_media . 'px)'; } if ( '' !== $max_media ) { $max_media_css = '(max-width:' . $max_media . 'px)'; } if ( '' !== $min_media && '' !== $max_media ) { $media_separator = ' and '; } $media_css .= $min_media_css . $media_separator . $max_media_css . '{' . $parse_css . '}'; return $media_css; } } return $parse_css; } } /** * Get CSS value */ if ( ! function_exists( 'astra_widget_get_css_value' ) ) { /** * Get CSS value * * Syntax: * * astra_widget_get_css_value( VALUE, UNIT ); * * E.g. * * astra_widget_get_css_value( VALUE, 'url' ); * astra_widget_get_css_value( VALUE, 'px' ); * astra_widget_get_css_value( VALUE, 'em' ); * * @param string $value CSS value. * @param string $unit CSS unit. * @param string $default CSS default font. * @return mixed CSS value depends on $unit */ function astra_widget_get_css_value( $value = '', $unit = 'px', $default = '' ) { if ( '' == $value && '' == $default ) { return $value; } $css_val = ''; switch ( $unit ) { case 'px': case '%': $value = ( '' != $value ) ? $value : $default; $css_val = esc_attr( $value ) . $unit; break; case 'url': $css_val = $unit . '(' . esc_url( $value ) . ')'; break; default: $value = ( '' != $value ) ? $value : $default; if ( '' != $value ) { $css_val = esc_attr( $value ) . $unit; } } return $css_val; } }