Last active
April 28, 2016 17:29
-
-
Save richardW8k/866435d6db255ab2acb6 to your computer and use it in GitHub Desktop.
enable support for using the Survey add-on rating type field with conditional logic - Survey Add-On version 3.0 includes this functionality so this snippet is no longer required
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
class RW_GF_Rating_Field_Logic { | |
public function __construct() { | |
add_action( 'init', array( $this, 'init' ) ); | |
} | |
function init() { | |
if ( ! property_exists( 'GFForms', 'version' ) || ! version_compare( GFForms::$version, '1.9.10', '>=' ) ) { | |
return; | |
} | |
add_filter( 'gform_field_content', array( $this, 'maybe_add_logic_event' ), 10, 2 ); | |
add_filter( 'gform_admin_pre_render', array( $this, 'enable_rating_in_conditional_logic' ) ); | |
} | |
function maybe_add_logic_event( $content, $field ) { | |
if ( $field->get_input_type() != 'rating' ) { | |
return $content; | |
} | |
$logic_event = $field->get_conditional_logic_event( 'change' ); | |
return ! empty( $logic_event ) ? str_replace( "radio'", "radio' {$logic_event}", $content ) : $content; | |
} | |
function enable_rating_in_conditional_logic( $form ) { | |
if ( GFCommon::is_entry_detail() ) { | |
return $form; | |
} | |
echo "<script type='text/javascript'>" . | |
" gform.addFilter('gform_is_conditional_logic_field', function (isConditionalLogicField, field) {" . | |
" return field.inputType == 'rating' ? true : isConditionalLogicField;" . | |
' });' . | |
'</script>'; | |
return $form; | |
} | |
} | |
new RW_GF_Rating_Field_Logic(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment