File: //var/www/shoetique/wp-content/plugins/woocommerce-stock-manager/admin/includes/class-wsm-save.php
<?php
/**
* Save class for data via import.
*
* @package woocommerce-stock-manager/admin/includes/
* @version 2.8.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class for saving changes done via Stock Manager Import.
*/
class WSM_Save {
/**
* Save data for one item (used in foreach, for save all button)
*
* @param array $data The column key to name map.
* @param ID $product_id The ID of the product.
*/
public static function save_one_item( $data, $product_id ) {
$values = self::prepare_data( $data, $product_id );
if ( ! empty( $values ) ) {
self::save_data( $values, $product_id );
}
}
/**
* Prepare data
*
* @param array $data The column key to name map.
* @param string $item ID.
*/
public static function prepare_data( $data, $item ) {
$values = array();
$defaults = self::get_default();
foreach ( $defaults as $default ) {
if ( isset( $data[ $default ] ) ) {
$values[ $default ] = wc_clean( $data[ $default ] );
}
}
return $values;
}
/**
* Get defaults.
*/
public static function get_default() {
$values = array(
'sku',
'manage_stock',
'stock_status',
'backorders',
'stock',
'tax_status',
'tax_class',
'shipping_class',
'weight',
'regular_price',
'sales_price',
);
return $values;
}
/**
* Save prepared data.
*
* @param array $data The column key to name map.
* @param ID $product_id The ID of the product.
*/
public static function save_data( $data, $product_id ) {
$display_option = get_option( 'wsm_display_option' );
$_product = wc_get_product( $product_id );
// use is_a instead of instanceof to cover all product types.
if ( is_a( $_product, 'WC_Product' ) ) {
if ( isset( $data['sku'] ) ) {
$_product->set_sku( $data['sku'] );
}
if ( isset( $data['manage_stock'] ) ) {
$_product->set_manage_stock( $data['manage_stock'] );
}
if ( isset( $data['backorders'] ) ) {
$_product->set_backorders( $data['backorders'] );
}
if ( isset( $data['stock_status'] ) ) {
$_product->set_stock_status( $data['stock_status'] );
}
if ( isset( $data['stock'] ) ) {
$_product->set_stock_quantity( $data['stock'] );
}
if ( isset( $data['tax_status'] ) ) {
$_product->set_tax_status( $data['tax_status'] );
}
if ( isset( $data['tax_class'] ) ) {
$_product->set_tax_class( $data['tax_class'] );
}
if ( isset( $data['shipping_class'] ) ) {
$_product->set_shipping_class_id( $data['shipping_class'] );
}
if ( isset( $data['weight'] ) ) {
$_product->set_weight( $data['weight'] );
}
/* // @codingStandardsIgnoreLine
if( !empty( $data['regular_price'] ) ){
$price = sanitize_text_field($data['regular_price']);
if( !empty( $data['sales_price'] ) ){
$sale_price = sanitize_text_field($data['sales_price']);
wsm_save_price( $product_id, $price, $sale_price );
}else{
wsm_save_price( $product_id, $price );
}
}
*/
if ( isset( $data['regular_price'] ) ) {
if ( ! empty( $data['regular_price'] ) ) {
$_product->set_price( $data['regular_price'] );
$_product->set_regular_price( $data['regular_price'] );
} else {
$_product->set_price( '' );
$_product->set_regular_price( '' );
}
}
if ( isset( $data['sales_price'] ) ) {
if ( ! empty( $data['sales_price'] ) ) {
$_product->set_sale_price( $data['sales_price'] );
} else {
$_product->set_sale_price( '' );
}
}
$_product->save();
wc_delete_product_transients( $product_id );
}
}
}//end class