// 3 juli 2020 | Add Spraypay functions | Nextlead

// Check of de betaalmethode Spraypay is geactiveerd en voer dan pas de actions en filters uit
add_action( 'init', 'check_spraypay' );
function check_spraypay() {
  $actieve_methodes = WC()->payment_gateways->get_available_payment_gateways();
  $betaalmethodes = array();
  foreach( $actieve_methodes as $betaalmethode ) {
    $betaalmethodes[] = $betaalmethode->id;
  }
  if (in_array("pay_gateway_spraypay", $betaalmethodes)) {
    add_action( 'woocommerce_share', 'spraypay_geld_lenen_kost_geld' );
    add_filter( 'woocommerce_get_price_html', 'spraypay_price', 11, 3 );
    add_filter( 'woocommerce_available_payment_gateways', 'spraypay_deactiveren_specifieke_categorie' );
  };
}

// Voeg geld lenen kost geld banner toe indien spraypay mogelijk is
function spraypay_geld_lenen_kost_geld(){
  $actieve_methodes = WC()->payment_gateways->get_available_payment_gateways();
  $betaalmethodes = array();
  foreach( $actieve_methodes as $betaalmethode ) {
    $betaalmethodes[] = $betaalmethode->id;
  }
  if (in_array("pay_gateway_spraypay", $betaalmethodes)) {
  	global $product;
  	$prijs = $product->get_price();
  	if( !has_term( array( 'smartphone' ), 'product_cat' ) && $prijs >= 250):
  		echo '<div style="display: block;"><img src="'.get_template_directory_uri().'/geldlenenkostgeld.jpg" alt="Geld lenen kost geld"/></div>';
  	endif;
  };
}

// Voeg de Spraypay termijnen toe aan het eind van de prijs html.
function spraypay_price( $price ) {
  $actieve_methodes = WC()->payment_gateways->get_available_payment_gateways();
  $betaalmethodes = array();
  foreach( $actieve_methodes as $betaalmethode ) {
    $betaalmethodes[] = $betaalmethode->id;
  }
  if (in_array("pay_gateway_spraypay", $betaalmethodes)) {
    global $product;
    $prijs = $product->get_price();
    $factor = 0.03317;
    $maandbedrag = $prijs * $factor;
    $bedragformatted = ' <span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">€</span>'.number_format($maandbedrag, 2, ',', '').'</span> ';
    if( !has_term( array( 'smartphone' ), 'product_cat' ) && $prijs >= 250): // voer de code alleen uit als het product meer dan 250 euro kost en het NIET in de categorie smartphone zit
      $textafter = __( 'of', 'spraypay' ) . $bedragformatted . __( 'in 36 termijnen', 'spraypay' );
    	return $price . '<br /><span style="font-size: 13px; font-style: italic;">' . $textafter . '</span>';
    else:
      return $price;
    endif;
  }
}

// Verwijder de Spraypay betaalmethode als er producten in de winkelmand zitten van de categorie "smartphone" ofwel ID 588
function spraypay_deactiveren_specifieke_categorie( $available_gateways ) {
    if ( is_admin() ) return $available_gateways;
    if ( ! is_checkout() ) return $available_gateways;
    $unset = false;
    $category_ids = array( 588 ); // Voer de ID's van de categorieen in (komma spatie scheiden voor meerdere)
    foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
        $terms = get_the_terms( $values['product_id'], 'product_cat' );
        foreach ( $terms as $term ) {
            if ( in_array( $term->term_id, $category_ids ) ) {
                $unset = true;
                break;
            }
        }
    }
    if ( $unset == true ) unset( $available_gateways['pay_gateway_spraypay'] );
    return $available_gateways;
}

Geef een reactie 0