Created
December 5, 2014 00:23
-
-
Save drrobotnik/ba459c656dde8fa57e89 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function tt_widget_visibility_js() { ?> | |
<script> | |
jQuery(function($) { | |
$( document ).on( 'change.widgetconditions', 'select.conditions-rule-major', function() { | |
var $conditionsRuleMajor = $ ( this ); | |
var $conditionsRuleMinor = $conditionsRuleMajor.siblings( 'select.conditions-rule-minor:first' ); | |
var $conditionsRuleQueryVars = $conditionsRuleMajor.siblings( 'input.conditions-rule-query-var' ); | |
console.log($conditionsRuleMajor.val()); | |
console.log($conditionsRuleMinor); | |
if ( $conditionsRuleMajor.val() == 'query_vars' ) { | |
$conditionsRuleMinor.hide(); | |
$conditionsRuleQueryVars.show(); | |
}else{ | |
$conditionsRuleMinor.show(); | |
$conditionsRuleQueryVars.hide(); | |
} | |
}); | |
}); | |
</script><?php | |
} | |
function tt_widget_visibility_minor_visible( $default, $rule ) { | |
if ( 'query_vars' == $rule['major'] ) { | |
return false; | |
} | |
return true; | |
} | |
function tt_widget_visibility_condition_major( $rule ) { ?> | |
<option value="query_vars" <?php selected( "query_vars", $rule['major'] ); ?>><?php esc_html_e( 'Query Vars', 'jetpack' ); ?></option> | |
<?php } | |
function tt_widget_visibility_conditions( $conditions ) { | |
return array( 'major' => '', 'minor' => '', 'query_var_key' => '', 'query_var_value' => '' ); | |
} | |
function tt_widget_visibility_additional_fields( $rule ) { | |
?><input class="conditions-rule-query-var small-text<?php if ( ! $rule['major'] || 'query_vars' != $rule['major'] ) { ?> hidden<?php } ?>" name="conditions[rules_query_var_key][]" value="<?php echo $rule['query_var_key']; ?>" data-brandon="" placeholder="key" /> | |
<input class="conditions-rule-query-var small-text<?php if ( ! $rule['major'] || 'query_vars' != $rule['major'] ) { ?> hidden<?php } ?>" name="conditions[rules_query_var_value][]" value="<?php echo $rule['query_var_value']; ?>" data-brandon="" placeholder="value" /><?php | |
} | |
function tt_widget_conditions_defaults( $defaults, $index ) { | |
$defaults['query_var_key'] = isset( $_POST['conditions']['rules_query_var_key'][$index] ) ? $_POST['conditions']['rules_query_var_key'][$index] : ''; | |
$defaults['query_var_value'] = isset( $_POST['conditions']['rules_query_var_value'][$index] ) ? $_POST['conditions']['rules_query_var_value'][$index] : ''; | |
return $defaults; | |
} | |
function tt_widget_visibility_filter_widget( $condition_result, $rule ) { | |
if( 'query_vars' == $rule['major']) { | |
if( get_query_var( $rule['query_var_key'] ) == $rule['query_var_value'] ) { | |
$condition_result = true; | |
} else { | |
$condition_result = false; | |
} | |
} | |
return $condition_result; | |
} | |
add_action('admin_init','tt_jetpack_plugin_init'); | |
add_filter( 'widget_conditions_defaults', 'tt_widget_conditions_defaults', 10, 2 ); | |
add_filter( 'widget_visibility_conditions', 'tt_widget_visibility_conditions' ); | |
add_filter( 'widget_visibility_minor_visible', 'tt_widget_visibility_minor_visible', 10, 2 ); | |
add_filter( 'widget_visibility_filter_widget', 'tt_widget_visibility_filter_widget', 10, 2 ); | |
add_action( 'widget_visibility_condition_major', 'tt_widget_visibility_condition_major' ); | |
add_action( "widget_visibility_additional_fields", 'tt_widget_visibility_additional_fields' ); | |
function tt_jetpack_plugin_init() { | |
global $pagenow; | |
if( 'widgets.php' == $pagenow) { | |
add_action( 'admin_head', 'tt_widget_visibility_js',100); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment