Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Avada_Widget_Style {
- public function __construct() {
- add_filter( 'in_widget_form', array( $this, 'add_widget_styling_options' ), 10, 3 );
- add_filter( 'widget_update_callback', array( $this, 'save_widget_styling_options' ), 10, 2 );
- // add_filter( 'widget_display_callback', array( $this, 'widget_display_callback' ), 10, 3 );
- add_filter( 'dynamic_sidebar_params', array( $this, 'add_widget_styles' ) );
- }
- public function add_widget_styling_options( $widget, $return, $instance ) {
- $widget_area = $this->get_sidebar_id_from_widget_id( $widget->id );
- if ( null !== $widget_area && false !== strpos( $widget_area, 'avada-footer-widget' ) ) {
- $padding = isset( $instance['fusion_padding'] ) ? $instance['fusion_padding'] : '';
- ?>
- <p>
- <label for="<?php echo $widget->get_field_id( 'fusion_padding' ); ?>">
- <?php _e( 'Padding', 'Avada' ); ?>
- </label>
- <input class="widefat" type="text" id="<?php echo $widget->get_field_id( 'fusion_padding' ); ?>"
- name="<?php echo $widget->get_field_name( 'fusion_padding' ); ?>"
- value="<?php echo esc_attr( $padding ); ?>"
- />
- </p>
- <?php
- }
- }
- public function get_sidebar_id_from_widget_id( $widget_id ) {
- $sidebars = wp_get_sidebars_widgets();
- foreach( (array) $sidebars as $sidebar_id => $sidebar ) {
- if( in_array( $widget_id, (array) $sidebar, true ) )
- return $sidebar_id;
- }
- return null; // not found case
- }
- public function save_widget_styling_options( $instance, $new_instance ) {
- if (! empty( $new_instance['fusion_padding'] ) ) {
- $new_instance['fusion_padding'] = sanitize_text_field( $new_instance['fusion_padding'] );
- }
- return $new_instance;
- }
- public function widget_display_callback( $instance, $widget, $args ) {
- return $instance;
- }
- public function add_widget_styles( $params ) {
- global $wp_registered_widgets;
- if ( ! isset( $params[0] ) ) {
- return $params;
- }
- if ( null !== $params[0]['id'] && false !== strpos( $params[0]['id'], 'avada-footer-widget' ) ) {
- $sidebar_id = $params[0]['id']; // Get the id for the current sidebar we're processing
- $widget_id = $params[0]['widget_id'];
- $widget_obj = $wp_registered_widgets[ $widget_id ];
- $widget_num = $widget_obj['params'][0]['number'];
- $widget_opt = $this->get_widget_opt( $widget_obj );
- // error_log( 'widget_opts' );
- // error_log( print_r( $widget_opt [ $widget_num ], true ) );
- if ( ! empty( $widget_opt [ $widget_num ]['fusion_padding'] ) ) {
- $params[0]['before_widget'] = str_replace( '>', ' style="padding: ' . esc_attr( $widget_opt [ $widget_num ]['fusion_padding'] ) . ';">', $params[0]['before_widget'] );
- }
- }
- return $params;
- }
- public function get_widget_opt( $widget_obj ) {
- $widget_opt = get_option( $widget_obj['callback'][0]->option_name );
- return $widget_opt;
- }
- }
- new Avada_Widget_Style();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement