Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@richardW8k
Last active April 28, 2016 17:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save richardW8k/866435d6db255ab2acb6 to your computer and use it in GitHub Desktop.
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
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