// 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;
}
#betaalmethode #gateway #methode #payment #spraypay #woocommerce