Product_Review_Handler::handle_request( $submission )
Summary
No summary available.Source
File: src/BigCommerce/Forms/Product_Review_Handler.php
public function handle_request( $submission ) { if ( ! $this->should_handle_request( $submission ) ) { return; } $errors = $this->validate_submission( $submission ); if ( count( $errors->get_error_codes() ) > 0 ) { /** * Triggered when a form has errors that prevent completion. * * @param \WP_Error $errors The message that will display to the user * @param array $submission The data submitted to the form */ do_action( 'bigcommerce/form/error', $errors, $submission ); return; } $product = new Product( (int) $submission['bc-review']['post_id'] ); $product_id = $product->bc_id(); $review_request = new ProductReviewPost( [ 'title' => sanitize_text_field( $submission['bc-review']['subject'] ), 'text' => sanitize_textarea_field( $submission['bc-review']['content'] ), /** * Filters review status in form. * * @param string $status Status. */ 'status' => apply_filters( 'bigcommerce/form/review/status', 'pending', $submission, $product_id ), 'rating' => intval( $submission['bc-review']['rating'] ), 'email' => sanitize_email( $submission['bc-review']['email'] ), 'name' => sanitize_text_field( $submission['bc-review']['name'] ), 'date_reviewed' => new \DateTime(), ] ); try { $response = $this->api->createProductReview( $product_id, $review_request ); } catch ( ApiException $e ) { $errors->add( 'api_error', __( 'There was an error saving your review. Please try again.', 'bigcommerce' ) ); do_action( 'bigcommerce/form/error', $errors, $submission ); return; } /** * Filters review form created message. * * @param string $message Message. */ $message = apply_filters( 'bigcommerce/form/review/created_message', __( 'Thank you for your review! It has been successfully submitted and is pending.', 'bigcommerce' ) ); do_action( 'bigcommerce/form/success', $message, $submission, null ); }