Пример #1
0
 /**
  * Sanatize price for output
  *
  * @since 0.0.9
  *
  * @access protected
  *
  * @param $price
  *
  * @return string
  */
 protected function sanatize_price($price)
 {
     return ingot_sanitize_amount($price);
 }
Пример #2
0
 /**
  * Get price of a product
  *
  * @since 1.1.0
  *
  * @param string $plugin Plugin slug edd|woo
  * @param int $id Product ID
  *
  * @return string
  */
 public static function get_price($plugin, $id)
 {
     if (ingot_acceptable_plugin_for_price_test($plugin)) {
         $price_callback = self::get_price_callback($plugin);
         if ($price_callback && is_callable($price_callback)) {
             $price = call_user_func($price_callback, $id);
             return ingot_sanitize_amount($price);
         }
     }
     return ingot_sanitize_amount(0);
 }
Пример #3
0
 /**
  *
  * Test applying utility method for price variation with positive variation
  *
  * @since 1.1.0
  *
  * @group price
  * @group helper
  *
  * @covers \ingot\testing\utility\price::apply_variation()
  */
 public function testPriceVarPositive()
 {
     $base_price = 10;
     $this->assertSame(ingot_sanitize_amount(15), ingot_sanitize_amount(\ingot\testing\utility\price::apply_variation(0.5, $base_price)));
     $this->assertSame(ingot_sanitize_amount(12), ingot_sanitize_amount(\ingot\testing\utility\price::apply_variation(0.2, $base_price)));
     $this->assertSame(ingot_sanitize_amount(18.5), ingot_sanitize_amount(\ingot\testing\utility\price::apply_variation(0.85, $base_price)));
 }
Пример #4
0
 /**
  * Test GET /products for EDD
  *
  * @since 1.1.0
  *
  * @group products_api
  * @group edd
  * @group price
  *
  * @covers ingot\testing\api\rest/products::get_price()
  */
 public function testGetEDDPrice()
 {
     wp_set_current_user(1);
     ingot_test_data_price::edd_create_simple_download(72);
     $product = ingot_test_data_price::edd_create_simple_download(7);
     $request = new \WP_REST_Request('GET', $this->namespaced_route . '/price/' . $product->ID);
     $request->set_query_params(array('plugin' => 'edd'));
     $response = $this->server->dispatch($request);
     $response = rest_ensure_response($response);
     $this->assertEquals(200, $response->get_status());
     $data = (array) $response->get_data();
     $this->assertArrayHasKey('price', $data);
     $this->assertSame(ingot_sanitize_amount(7), $data['price']);
 }
Пример #5
0
 /**
  * Set price
  *
  * @since 1.1.0
  *
  * @access protected
  *
  * @return mixed
  */
 protected function set_price()
 {
     $this->set_variant();
     $this->set_price_callback();
     $this->set_product();
     if (is_callable($this->price_callback)) {
         $variant = $this->variant;
         if (is_array($variant)) {
             $variation = price::get_price_variation($variant);
             $base_price = (double) call_user_func($this->price_callback, $this->product->ID);
             if (0 == $base_price || 0 == $variation) {
                 $this->price = ingot_sanitize_amount($base_price);
             }
             $price = price::apply_variation($variation, $base_price);
             if ($price < 0) {
                 $this->price = ingot_sanitize_amount($base_price);
             }
             $this->price = ingot_sanitize_amount($price);
         }
     }
 }