Current Path : /storage/v11800/testtest/public_html/wp-content/plugins/woo-razorpay/includes/api/

Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64

Upload File :
Current File : /storage/v11800/testtest/public_html/wp-content/plugins/woo-razorpay/includes/api/prepay-cod.php
<?php

const WC_ORDER_ID                    = 'woocommerce_order_id';
const RAZORPAY_PAYMENT_ID            = 'razorpay_payment_id';
const RAZORPAY_ORDER_ID              = 'razorpay_order_id';
const RAZORPAY_SIGNATURE             = 'razorpay_signature';
const RAZORPAY_OFFER                 = 'razorpay_offer';

function prepayCODOrder(WP_REST_Request $request): WP_REST_Response {
    $payload = $request->get_params();
    $wcRazorpay = new WC_Razorpay(false);

    $orderId = $payload[WC_ORDER_ID];
    $razorpayPaymentId = $payload[RAZORPAY_PAYMENT_ID];
    $razorpayOrderId = $payload[RAZORPAY_ORDER_ID];
    $signature = $payload[RAZORPAY_SIGNATURE];
    $razorpayOffer = $payload[RAZORPAY_OFFER];
    $attributes = array(
        RAZORPAY_ORDER_ID => $razorpayOrderId,
        RAZORPAY_PAYMENT_ID => $razorpayPaymentId,
        RAZORPAY_SIGNATURE  => $signature,
    );

    try
    {
        $api = $wcRazorpay->getRazorpayApiInstance();
        $api->utility->verifyPaymentSignature($attributes);
    }
    catch (Exception $e)
    {
        return new WP_REST_Response(["code" => 'woocommerce_order_payment_signature_verfication_failed'], 400);
    }
    $order = wc_get_order($orderId);
    if ('on-hold' != $order->get_status())
    {
        return new WP_REST_Response(['code' => 'woocommerce_order_not_in_on_hold_status'], 400);
    }

    $order->set_status('pending');
    $order->save();
    $couponInput = [];

    if (isset($payload['coupon']))
    {
        $couponKey = $payload['coupon']['code'];
        $amount = $payload['coupon']['amount'];
        $amountInRs = $amount/100;
        $couponInput[$couponKey] = $amountInRs;
    }
    if ($razorpayOffer > 0)
    {
        $razorpayOfferInRs = $razorpayOffer/100;
        $couponKey = 'Razorpay offers_'. $orderId .'(₹'. $razorpayOfferInRs .')';
        $couponInput[$couponKey] = $razorpayOfferInRs;
    }

    if (sizeof($couponInput) > 0 )
    {
        $error = bulkCouponApply($couponInput, $wcRazorpay, $order);
        if (sizeof($error) > 0 )
        {
            handleCouponFailure($couponInput, $order);
            return new WP_REST_Response($error, 500);
        }
    }
    $order->set_payment_method($wcRazorpay->id);
    $order->set_payment_method_title($wcRazorpay->title);
    $order->payment_complete($razorpayPaymentId);
    $order->set_status("processing");
    $order->save();
    $order->add_order_note("COD Order Converted to Prepaid <br/> Razorpay payment successful <br/>Razorpay Id: $razorpayPaymentId");
    return new WP_REST_Response([], 200);
}

function handleCouponFailure($couponInput, $order) {
    foreach($couponInput as $couponCode => $amount) {
        $order->remove_coupon($couponCode);
    }
    $order->set_status('on-hold');
    $order->save();
}

function bulkCouponApply($input, $wcRazorpay, $order) : array {
    foreach($input as $couponCode => $amount) {
        $isSuccess = createCoupon($couponCode, $amount);
        if ($isSuccess === false) {
            rzpLogError("Prepay cod create coupon error, key : " . $couponCode);
            return['code' => 'woocommerce_create_new_'. $couponCode .'_coupon_error'];
        }
        $wcRazorpay->applyCoupon($order, $couponCode, $amount);
    }
    return [];
}

function createCoupon($coupon_code, $amount) : bool {
    $coupon = array(
        'post_title' => $coupon_code,
        'post_content' => '',
        'post_status' => 'publish',
        'post_author' => 1,
        'post_type' => 'shop_coupon');

    $new_coupon_id = wp_insert_post( $coupon );

    if( $new_coupon_id === 0) {
        return false;
    }

    $input = [
        'discount_type' => 'fixed_cart',
        'coupon_amount' => $amount,
        'usage_limit' => 1,
        'minimum_amount' => $amount,
    ];

    return bulkUpdatePostMeta($new_coupon_id, $input);
}

function bulkUpdatePostMeta($id, $input): bool {
    foreach ($input as $key => $value) {
        $isSuccess = update_post_meta($id, $key, $value);
        if($isSuccess === false) {
            rzpLogError("Prepay COD create coupon : update post meta error, key : " . $key . ", value : " . $value);
            return false;
        }
    }
    return true;
}

Softgel-Capsule – Affy Pharma Pvt Ltd

Arrange A Callback
[]
1 Step 1
Full Name
Telephone
Departmentyour full name
Postal Address
Message
0 /
Previous
Next
Shopping Basket