$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'] ); } ?>
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'] ); } ?>