Poll content and options aren't saved
-
After Save Poll answers and options are lost. ??
Viewing 1 replies (of 1 total)
-
Hi Sam_a,
Edit yop_poll_model.php and replace the add_poll_to_database function with
public function add_poll_to_database( $request = array(), $config = NULL ) { if ( $this->verify_request_data( $request, $config ) ){ $this->make_poll_from_request_data( $request, $config ); $result = self::get_poll_from_database_by_name( $this->poll['name'] ); if ( !isset( $result['id'] ) ){ //inserting poll to db $this->poll['id'] = self::insert_poll_to_database( $this->poll ); if ( isset( $request['yop_poll_options']['auto_generate_poll_page'] ) ){ if ( 'yes' == $request['yop_poll_options']['auto_generate_poll_page'] ){ $_p = array(); $_p['post_title'] = $this->poll['name']; $_p['post_content'] = "[yop_poll id='" . $this->poll['id'] . "']"; $_p['post_status'] = 'publish'; $_p['post_type'] = 'page'; $_p['comment_status'] = 'open'; $_p['ping_status'] = 'open'; $_p['post_category'] = array( 1 ); // the default 'Uncategorised' $poll_page_id = wp_insert_post( $_p ); $request['yop_poll_options']['poll_page_url'] = get_permalink( $poll_page_id ); $request['yop_poll_options']['has_auto_generate_poll_page'] = 'yes'; } } //inserting poll options to db $poll_options = array(); $default_options = get_option( 'yop_poll_options', false ); if ( isset( $request['yop_poll_options'] ) ){ foreach ( $request['yop_poll_options'] as $option_name => $option_value ) { if ( $default_options ){ if ( isset( $default_options[$option_name] ) ){ if ( $default_options[$option_name] != $option_value ){ $poll_options[$option_name] = $option_value; } } } else { $poll_options[$option_name] = $option_value; } } } //this is for checkbox options if ( !isset( $request['yop_poll_options']['never_expire'] ) ){ $poll_options['never_expire'] = 'no'; } if ( isset( $request['yop_poll_options']['schedule_reset_poll_date'] ) ){ $poll_options['schedule_reset_poll_date'] = strtotime( $request['yop_poll_options']['schedule_reset_poll_date'] ); } else { $poll_options['schedule_reset_poll_date'] = current_time( 'timestamp' ); } if ( 'yes' == $request['yop_poll_options']['schedule_reset_poll_stats'] ){ $default_options['start_scheduler'] = 'yes'; } else { $change_start_scheduler_to_no = true; $yop_polls = self::get_yop_polls_fields( array( 'id' ) ); if ( count( $yop_polls ) > 0 ){ foreach ( $yop_polls as $yop_poll_id ) { if ( $yop_poll_id['id'] != $this->poll['id'] ){ $yop_poll_options = get_yop_poll_meta( $yop_poll_id['id'], 'options', true ); if ( isset( $yop_poll_options['schedule_reset_poll_stats'] ) && 'yes' == $yop_poll_options['schedule_reset_poll_stats'] ){ $change_start_scheduler_to_no = false; } } } } if ( $change_start_scheduler_to_no ){ $default_options['start_scheduler'] = 'no'; } else { $default_options['start_scheduler'] = 'yes'; } } update_option( 'yop_poll_options', $default_options ); //if ( count( $poll_options ) > 0 ) update_yop_poll_meta( $this->poll['id'], 'options', $poll_options ); //inserting answers to db foreach ( $default_options as $option_name => $option_value ) { if ( isset( $poll_options[$option_name] ) ){ if ( $option_name != 'use_template_bar' ){ $default_options[$option_name] = $poll_options[$option_name]; } } } $this->make_answers_from_request_data( $request, $config ); if ( count( $this->answers ) > 0 ){ foreach ( $this->answers as $answer ) { $answer_id = self::insert_answer_to_database( $answer ); //insert poll answer options to db if ( 'other' != $answer['type'] ){ if ( isset( $request['yop_poll_answer_options'][$answer['name']] ) ){ $poll_answer_options = array(); foreach ( $request['yop_poll_answer_options'][$answer['name']] as $option_name => $option_value ) { if ( isset( $poll_options[$option_name] ) && $poll_options[$option_name] != $option_value ){ $poll_answer_options[$option_name] = $option_value; } elseif ( $default_options[$option_name] != $option_value ) { $poll_answer_options[$option_name] = $option_value; } if ( $option_name == 'is_default_answer' ){ $poll_answer_options[$option_name] = $option_value; } } //if ( count( $poll_answer_options ) > 0 ) update_yop_poll_answer_meta( $answer_id, 'options', $poll_answer_options, false ); } } } } //inserting custom fields to db $this->make_custom_fields_from_request_data( $request, $config ); if ( count( $this->custom_fields ) > 0 ){ foreach ( $this->custom_fields as $custom_field ) { self::insert_custom_field_to_database( $custom_field ); } } return $this->poll['id']; } else { $this->error = __( 'This poll already exists! Please choose another name!', 'yop_poll' ); return false; } } else { return false; } }
Let us know if you need more help.
Regards,
YOP Team
Viewing 1 replies (of 1 total)
- The topic ‘Poll content and options aren't saved’ is closed to new replies.