/** * Sanatize price for output * * @since 0.0.9 * * @access protected * * @param $price * * @return string */ protected function sanatize_price($price) { return ingot_sanitize_amount($price); }
/** * 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); }
/** * * 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))); }
/** * 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']); }
/** * 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); } } }