/**
  * Shows the postsale offer on thank you page
  *
  * @param $order_id
  *
  * @return bool
  */
 public function show_postsale_offer($order_id)
 {
     $order = wc_get_order($order_id);
     if (!$this->can_postsale($order_id)) {
         return false;
     }
     $postsale_order_failed = false;
     $show_offer = true;
     if ($_POST) {
         $postsale_order = $this->create_registration_payment($order_id);
         if ($postsale_order instanceof WC_Order) {
             $item = null;
             $orderItems = $postsale_order->get_items();
             foreach ($orderItems as $order_item_id => $orderItem) {
                 if ($orderItem['type'] == 'line_item') {
                     $item = $orderItem;
                     break;
                 }
             }
             $args = array('order' => $postsale_order, 'postsale_item_ordered' => $item);
             $show_offer = false;
             echo WC_LUUP_Base_Helper::render_view('postsale/offer-success', $args);
         } else {
             $postsale_order_failed = true;
         }
     }
     if ($show_offer) {
         $postsale_product = $this->get_postsale_item();
         if (!$postsale_product->exists()) {
             return false;
         }
         $return_url = $this->get_return_url($order);
         $product_data = array('id' => $postsale_product->id, 'title' => $postsale_product->get_title(), 'image' => wp_get_attachment_image_src(get_post_thumbnail_id($postsale_product->get_post_data()->ID))[0], 'order_url' => $return_url);
         if (get_option('wc_settings_tab_luup_price') != '') {
             $product_data['regular_price'] = WC_LUUP_Base_Helper::format_price(get_option('wc_settings_tab_luup_price'), $postsale_product);
             $product_data['price'] = WC_LUUP_Base_Helper::format_price($postsale_product->get_display_price($postsale_product->get_regular_price()), $postsale_product);
         } else {
             $product_data['regular_price'] = WC_LUUP_Base_Helper::format_price($postsale_product->get_display_price($postsale_product->get_regular_price()), $postsale_product);
             $product_data['price'] = WC_LUUP_Base_Helper::format_price($postsale_product->get_display_price(), $postsale_product);
         }
         $args = array('product' => $product_data, 'upsell_text' => get_option('wc_settings_tab_luup_text'), 'postsale_order_failed' => $postsale_order_failed);
         echo WC_LUUP_Base_Helper::render_view('postsale/offer', $args);
     }
 }
 /**
  * Makes a custom payment note for the order
  *
  * @param $success
  * @param $payment_response
  * @param $order_id
  *
  * @return mixed
  */
 protected function make_custom_payment_note($success, $payment_response, $order_id)
 {
     $custom_note_data = array('response_code' => $payment_response->result->code, 'order_no' => $order_id, 'message' => $payment_response->result->description);
     $raw_custom_note = $success ? $this->get_option('custom_success_order_note') : $this->get_option('custom_failed_order_note');
     return strtoupper(WC_LUUP_Base_Helper::populate_string_placeholders($raw_custom_note, $custom_note_data));
 }
 /**
  * Universal set method
  *
  * @param $name
  * @param $value
  *
  * @return $this
  * @throws
  */
 public function set($name, $value)
 {
     if (!property_exists($this, $name)) {
         $data_name = WC_LUUP_Base_Helper::snake_to_camel_case($name, false);
         $this->data[$data_name] = $value;
     }
     return $this;
 }