Skip to content

Instantly share code, notes, and snippets.

@goranefbl
goranefbl / functions.php
Last active January 15, 2025 12:43
Accumulate coupons into single coupon
<?php
// Hook the function to the filter
add_filter('gens_raf_coupon_amount', 'modify_raf_coupon_amount', 10, 2);
function modify_raf_coupon_amount($amount, $order_id) {
// Get the user email from the order
$order = wc_get_order($order_id);
if (!$order) return $amount;
$rafID = get_post_meta($order_id,'_wpgens_raf_id',true);
if(!$rafID) {
@goranefbl
goranefbl / functions.php
Created December 4, 2024 14:37
fees instead of coupons
<?php
/* TEMPORARY FEES INSTEAD OF COUPONS CODE */
add_action('woocommerce_cart_calculate_fees', 'apply_10_percent_discount_as_fee');
function apply_10_percent_discount_as_fee($cart) {
// Avoid applying the fee in the admin or if cart is empty
if (is_admin() || !WC()->cart->get_cart_contents_count()) {
return;
}
<table style="border-collapse: collapse; font-family: Arial; width: 100%;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="padding: 0px;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: left; padding-top: 10px; padding-bottom: 20px;">
<p style="font-size: 14px; margin: 0;">Michael Baum</p>
<p style="font-size: 14px; margin: 0;">Founder and CEO</p>
@goranefbl
goranefbl / route.js
Created October 3, 2024 10:52
Accept form file from webflow, upload to google drive and save to notion. Put file under app/api/upload/route.js
import { google } from "googleapis";
import { Readable } from "stream";
import { NextResponse } from "next/server";
import { Client } from "@notionhq/client";
let auth;
let drive;
const notion = new Client({ auth: process.env.NOTION_API_KEY });
@goranefbl
goranefbl / functions.php
Created September 17, 2024 10:41
custom popup on raf word
<?php
// Add this code to your theme's functions.php file
function custom_raf_popup() {
// Check if the URL contains the 'raf' query parameter
if (isset($_GET['raf'])) {
// Add popup HTML, CSS, and JS to footer
add_action('wp_footer', 'custom_popup_html');
}
@goranefbl
goranefbl / reach.php
Last active September 8, 2024 10:12
reach webhooks
<?php
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
add_action('rest_api_init', 'register_withreach_webhook_endpoint');
function register_withreach_webhook_endpoint() {
register_rest_route('withreach/v1', '/webhook', array(
@goranefbl
goranefbl / functions.php
Created September 7, 2024 15:59
Save utm to user then order
<?php
// Hook to save user meta when a user registers
add_action('user_register', 'save_source_tracker_user_meta', 10, 1);
function save_source_tracker_user_meta($user_id) {
$disabled = get_option('wpgens_st_disable');
if ($disabled) {
return;
@goranefbl
goranefbl / functions.php
Created September 7, 2024 15:45
save UTM params
<?php
function save_source_tracker_meta($order_id)
{
$disabled = get_option('wpgens_st_disable');
if ($disabled) {
return;
}
@goranefbl
goranefbl / functions.php
Created September 5, 2024 13:15
Auto add product to user cart if referral coupon is applied
<?php
add_action( 'woocommerce_before_calculate_totals', 'wpgens_auto_apply_coupons_and_add_product', 10, 1 );
function wpgens_auto_apply_coupons_and_add_product( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
if(!is_user_logged_in())
return;
@goranefbl
goranefbl / class-wpgens-raf-email.php
Created August 25, 2024 06:58
new raf email class
<?php
class WPGens_RAF_Email
{
private $email;
private $coupon_code;
private $name;