REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 4.31 KB
Close
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/woocommerce/src/Internal/CostOfGoodsSold/CogsAwareRestControllerTrait.php
Text
Base64
<?php declare( strict_types=1 ); namespace Automattic\WooCommerce\Internal\CostOfGoodsSold; /** * Trait with Cost of Goods Sold related functionality shared by the REST products and variations controllers. */ trait CogsAwareRestControllerTrait { use CogsAwareTrait; /** * Add Cost of Goods Sold related information for a given product to the array of data that will become the REST response. * * @param array $data Array of response data. * @param WC_Product $product Product to get the information from. */ private function add_cogs_info_to_returned_product_data( array &$data, $product ): void { if ( ! $this->cogs_is_enabled() ) { return; } $data['cost_of_goods_sold'] = array( 'values' => array( array( 'defined_value' => $product->get_cogs_value(), 'effective_value' => $product->get_cogs_effective_value(), ), ), 'total_value' => $product->get_cogs_total_value(), ); if ( $product instanceof \WC_Product_Variation ) { $data['cost_of_goods_sold']['defined_value_is_additive'] = $product->get_cogs_value_is_additive(); } } /** * Apply Cost of Goods Sold related information received in the request body to a product object. * * @param WP_Rest_Request $request Request data. * @param WC_Product $product The product to apply the data to. */ private function set_cogs_info_in_product_object( $request, $product ): void { $values = $request['cost_of_goods_sold']['values'] ?? null; if ( ! is_null( $values ) ) { $value = 0; foreach ( $values as $value_info ) { $value += (float) ( $value_info['defined_value'] ?? 0 ); } $product->set_cogs_value( $value ); } if ( $product instanceof \WC_Product_Variation ) { $is_additive = $request['cost_of_goods_sold']['defined_value_is_additive'] ?? null; if ( ! is_null( $is_additive ) ) { $product->set_cogs_value_is_additive( $is_additive ); } } } /** * Add Cost of Goods Sold related schema information to a given REST endpoint schema. * * @param array $schema The schema data set to add the information to. * @param bool $for_variations_controller True if the information is for an endpoint in the variations controller. * @return array Updated schema information. */ private function add_cogs_related_product_schema( array $schema, bool $for_variations_controller ): array { $schema['properties']['cost_of_goods_sold'] = array( 'description' => __( 'Cost of Goods Sold data.', 'woocommerce' ), 'type' => 'object', 'context' => array( 'view', 'edit' ), 'properties' => array( 'values' => array( 'description' => __( 'Cost of Goods Sold values for the product.', 'woocommerce' ), 'type' => 'array', 'context' => array( 'view', 'edit' ), 'items' => array( 'type' => 'object', 'properties' => array( 'defined_value' => array( 'description' => __( 'Defined cost value.', 'woocommerce' ), 'type' => 'number', 'context' => array( 'view', 'edit' ), ), 'effective_value' => array( 'description' => __( 'Effective monetary cost value.', 'woocommerce' ), 'type' => 'number', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), ), ), ), 'defined_value_is_additive' => array( 'description' => __( 'Applies to variations only. If true, the effective value is the base value from the parent product plus the defined value; if false, the defined value is the final effective value.', 'woocommerce' ), 'type' => 'boolean', 'default' => false, 'context' => array( 'view', 'edit' ), ), 'total_value' => array( 'description' => __( 'Total monetary value of the Cost of Goods Sold for the product (sum of all the effective values).', 'woocommerce' ), 'type' => 'number', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), ), ); if ( $for_variations_controller ) { $schema['properties']['cost_of_goods_sold']['properties']['defined_value_is_additive']['description'] = __( 'If true, the effective value is the base value from the parent product plus the defined value; if false, the defined value is the final effective value.', 'woocommerce' ); } return $schema; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 4
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
CogsAwareRestControllerTrait.php
4.31 KB
lrw-r--r--
2025-01-21 18:53:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CogsAwareTrait.php
1.06 KB
lrw-r--r--
2024-12-16 15:24:32
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CogsAwareUnitTestSuiteTrait.php
1.29 KB
lrw-r--r--
2024-11-14 01:17:00
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CostOfGoodsSoldController.php
5.86 KB
lrw-r--r--
2025-10-06 17:56:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).