2018-10-09 14:34:10 +02:00
< ? php
if ( ! defined ( 'ABSPATH' ) ) {
exit ; // Exit if accessed directly
}
/**
* Subscribe to woocommerce product actions
*
* Class Wiaas_Product_Hooks
*/
class Wiaas_Product_Hooks {
public static function init () {
add_action ( 'woocommerce_update_product' , array ( __CLASS__ , 'on_product_update' ), 10 , 1 );
}
/**
* Executes when woocommerce product is updated
*/
public static function on_product_update ( $product_id ) {
$product = wc_get_product ( $product_id );
if ( $product -> get_type () === WC_Product_Simple :: get_type ()){
$product_price = Wiaas_Product_Pricing :: get_product_price ( $product );
$packages_containing_updated_product = wc_pb_get_bundled_product_map ( $product );
foreach ( $packages_containing_updated_product as $index => $package_id ){
$package = new WC_Product_Bundle ( $package_id );
2018-10-11 03:00:44 +02:00
self :: validate_package ( $package );
2018-10-09 14:34:10 +02:00
}
2018-10-11 03:00:44 +02:00
} else if ( $product -> get_type () === WC_Product_Bundle :: get_type ()){
self :: validate_package ( $product );
2018-10-09 14:34:10 +02:00
}
}
2018-10-11 03:00:44 +02:00
private static function validate_package ( $package ){
$package_total_cost = Wiaas_Pricing :: get_package_total_cost ( $package );
$package_max_cost_margin = Wiaas_Package_Pricing :: get_package_max_cost_margin ( $package );
file_put_contents ( '/home/bilal/wiaas.log' , 'Paket ID : ' . $package -> get_id () . ' Total cost = ' . $package_total_cost . ' Max margin = ' . $package_max_cost_margin . ' ||| ' , FILE_APPEND );
if (( $package_max_cost_margin != 0 ) && ( $package_total_cost > $package_max_cost_margin )){
Wiaas_Package_Status :: set_package_status ( $package -> get_id (), Wiaas_Package_Status :: INVALID_MARGIN );
} else {
//TODO: Check if template is valid
Wiaas_Package_Status :: set_package_status ( $package -> get_id (), Wiaas_Package_Status :: AVAILABLE );
}
}
2018-10-09 14:34:10 +02:00
}
Wiaas_Product_Hooks :: init ();