add_action( 'woocommerce_cart_calculate_fees', 'custom_auction_charge' );
function custom_auction_charge( $cart_object ) {
$spfee = 0.00; // initialize special fee, absolute amount
$spfeeperprod = 0.20; //special fee per product, percentage
foreach ( $cart_object->cart_contents as $key => $value ) {
$proid = $value['product_id']; //get the product id from cart
$quantiy = $value['quantity']; //get quantity from cart
$product = wc_get_product( $proid ); //
if('auction' == $product->get_type()) :
if ($product->get_auction_closed() == 2){
$itmprice = $value['data']->get_auction_current_bid(); //get product price
$spfee = $spfee + $itmprice * $quantiy * $spfeeperprod;
}
endif;
}
if($spfee > 0 ) {
WC()->cart->add_fee( 'Buyers Premium', $spfee, true, 'standard' );
}
}
add_filter( 'wsa_stripe_automatic_charge_order', 'auctions_for_woocommerce_stripe_automatic_charge_addfee', 10, 2 );
function auctions_for_woocommerce_stripe_automatic_charge_addfee( $order, $auctions_id ) {
$fee_per_auction = 0.20; //special fee per product, percentage
$spfee = $spfee = 0.00; // initialize special fee, absolute amount
$product = wc_get_product( $auctions_id );
$item_price = $product->get_auction_current_bid();
$global_fee = $spfee + $item_price * $fee_per_auction;
$item_fee = new WC_Order_Item_Fee();
$item_fee->set_name( 'BPA' );
$item_fee->set_amount( $global_fee );
$item_fee->set_total( $global_fee );
$order->add_item( $item_fee );
$note = sprintf(
__( 'WSA Stripe Auto Charge Log: This order includes a %s Buyers Premium fee.', 'woocommerce' ),
$global_fee
);
$order->add_order_note( $note, true ); // true if you want the customer to see order note about fees
return $order;
}
Comments