File: /home/deshuvsd/www/wp-content/plugins/pixelyoursite-pro/includes/functions-cartflows.php
<?php
namespace PixelYourSite;
function isWcfActive() {
return function_exists('wcf');
}
function isWcfProActive() {
return function_exists('wcf_pro');
}
function isWcfLanding () {
if(isWcfActive()) {
return _is_wcf_landing_type();
}
return false;
}
function isWcfCheckoutPage() {
if(isWcfActive()) {
return _is_wcf_checkout_type();
}
return false;
}
function isWcfUpSale () {
if(isWcfActive()) {
return _is_wcf_upsell_type();
}
return false;
}
function isWcfDownSale () {
if(isWcfActive()) {
return _is_wcf_downsell_type();
}
return false;
}
function isWcfThankyou () {
if(isWcfActive()) {
return _is_wcf_thankyou_type();
}
return false;
}
function isWcfStep() {
if(isWcfActive()) {
return wcf()->utils->is_step_post_type();
}
return false;
}
function isWcfSeparateOrders() {
return function_exists('wcf_pro')
&& wcf_pro()->utils->is_separate_offer_order();
}
function isNextWcfCheckoutPage() {
return isNextWcfStep("checkout");
}
function isNextWcfStep ($stepType) {
if(isWcfActive()) {
$stepId = _get_wcf_step_id();
if($stepId) {
$flow_id = wcf()->utils->get_flow_id_from_step_id( $stepId );
$steps = wcf()->utils->get_flow_steps($flow_id);
for($i = 0; $i < count($steps); $i++) {
if($steps[$i]['id'] == $stepId && $i+1 < count($steps)) {
return $steps[$i + 1]['type'] == $stepType;
}
}
}
}
return false;
}
function getPrevWcfStep () {
if(isWcfActive()) {
$stepId = _get_wcf_step_id();
if($stepId) {
$flow_id = wcf()->utils->get_flow_id_from_step_id( $stepId );
$steps = wcf()->utils->get_flow_steps($flow_id);
for($i = 0; $i < count($steps); $i++) {
if($steps[$i]['id'] == $stepId && $i != 0) {
return $steps[$i - 1];
}
}
}
}
return null;
}
function getWcfFlowTitle() {
global $post;
$flow_id = wcf()->utils->get_flow_id_from_step_id( $post->ID );
return get_the_title($flow_id);
}
function getWcfCurrentStep() {
if(isWcfActive()) {
$stepId = _get_wcf_step_id();
if($stepId) {
return wcf_get_step($stepId);
}
}
return null;
}
function getWcfFlowCheckoutProducts() {
$wcfProducts = [];
if(isWcfActive()) {
$stepId = _get_wcf_step_id();
if($stepId) {
$flow_id = wcf()->utils->get_flow_id_from_step_id( $stepId );
$wcfProducts = getWcfCheckoutProducts($flow_id);
}
}
return $wcfProducts;
}
function getWcfOfferProduct($post_id) {
$product = get_post_meta( $post_id, 'wcf-offer-product', true );
$qty = get_post_meta( $post_id, 'wcf-offer-quantity', true );
$discount_value = get_post_meta( $post_id, 'wcf-offer-discount-value', true );
$discount_type = get_post_meta( $post_id, 'wcf-offer-discount', true );
return [
'product' => $product[0],
'quantity' => $qty,
'discount_value' => $discount_value,
'discount_type' => $discount_type
];
}
function getWcfFlowBumpProduct() {
global $post;
$product = get_post_meta( $post->ID, 'wcf-order-bump-product', true );
$qty = get_post_meta( $post->ID, 'wcf-order-bump-product-quantity', true );
$discount_value = get_post_meta( $post->ID, 'wcf-order-bump-discount-value', true );
$discount_type = get_post_meta( $post->ID, 'wcf-order-bump-discount', true );
if(!$product) return null;
return [
'product' => $product[0],
'quantity' => $qty,
'discount_value' => $discount_value,
'discount_type' => $discount_type
];
}
/* return array with items product(it is id), quantity, discount_type, discount_value and other*/
function getWcfCheckoutProducts($flow_id) {
$steps = wcf()->utils->get_flow_steps($flow_id);
$wcfProducts = [];
if(is_array($steps)) {
foreach ($steps as $step) {
if($step['type'] == 'checkout') {
$checkout_id = $step['id'];
$products = wcf()->utils->get_selected_checkout_products( $checkout_id );
foreach ( $products as $index => $data ) {
if ( empty( $data['add_to_cart'] ) || 'no' === $data['add_to_cart'] ) {
continue;
}
$wcfProducts[]=$data;
}
break;
}
}
}
return $wcfProducts;
}
/**
* @param \WC_Product $product
* @param $args
* @return float|-1
*/
function getWfcProductSalePrice($product, $args) {
if ($product) {
if (!empty($args['discount_value']) && !empty($args['discount_type'])) {
$productPrice = floatval($product->get_price());
if ($args['discount_type'] == "discount_percent") {
$percent = floatval($args['discount_value']) / 100;
return $productPrice - ($productPrice * $percent);
} elseif ($args['discount_type'] == "discount_price") {
return $productPrice - floatval($args['discount_value']);
}
}
}
return -1;
}
function wcf_get_offer_shipping($step_id) {
return floatval( wcf_pro()->options->get_offers_meta_value( $step_id, 'wcf-offer-flat-shipping-value' ) );
}