Skip to content

Instantly share code, notes, and snippets.

View sabrysuleiman's full-sized avatar
🏠
Working from home

Sabry Suleiman sabrysuleiman

🏠
Working from home
View GitHub Profile
@sabrysuleiman
sabrysuleiman / getUserTrafficSource.php
Last active June 24, 2025 12:23
php function to Get User Traffic Source
<?php
function getUserTrafficSource() {
$source = 'unknown'; // Default to unknown
$details = []; // To store additional details
// 1. Check for UTM parameters (most reliable for ads)
if (isset($_GET['utm_medium'])) {
if ($_GET['utm_medium'] === 'cpc' || $_GET['utm_medium'] === 'paid') {
$source = 'ad';
$details['ad_platform_guess'] = isset($_GET['utm_source']) ? $_GET['utm_source'] : 'unknown_platform';
@sabrysuleiman
sabrysuleiman / maildir2mbox.py
Created June 17, 2025 12:43
Convert maildirs (including subfolders) to mbox format ( python3 )
#!/usr/bin/env python
#
# Convert a maildir to a mbox file. ( python3 )
#
# Inspired by : Felipe Pena <[email protected]>
#
import mailbox
import sys
@sabrysuleiman
sabrysuleiman / Find & Replace WordPress Domain
Created April 16, 2025 17:24
Find & Replace WordPress Domain
-- 1. Update siteurl and home
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://site.local', 'https://site.com')
WHERE option_name IN ('siteurl', 'home');
-- 2. Update post content (links, images, etc.)
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'http://site.local', 'https://site.com');
-- 3. Update GUIDs (optional - normally shouldn't be changed unless migrating)
@sabrysuleiman
sabrysuleiman / Website Migration Via SSH & SCP.sh
Last active April 12, 2025 18:09
Website Migration Via SSH & SCP
# 🔐 Connect to Remote Server via SSH
# Establishes a secure SSH connection to a remote server using a specific port (e.g., 6543). Useful for accessing and managing remote systems.
ssh -p port [email protected]
ssh -p 6543 [email protected]
# 📦 Compress Website Directories into .tar.gz Archives
# Creates compressed .tar.gz archives of the uploads, themes, and plugins directories. Ideal for backup or transfer.
tar -czf uploads.tar.gz ./uploads
@sabrysuleiman
sabrysuleiman / Serve static assets with an efficient cache policy 
Created March 17, 2025 08:43
Serve static assets with an efficient cache policy 
<IfModule mod_expires.c>
ExpiresActive On
# Images (e.g., JPEG, PNG, GIF, SVG)
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year" #favicon
@sabrysuleiman
sabrysuleiman / gist:4d91db55bef76f63909cc2fc49c5a8c9
Created February 13, 2025 06:38
VSCdode Copilot Keyboard shortcut ( Ubuntu )
# chat About you Code ( Ctrl + Alt + I )
# Make changes using natural language ( Ctrl + Shift + Alt + I )
@sabrysuleiman
sabrysuleiman / Response.php
Created November 13, 2024 14:18 — forked from jeffochoa/Response.php
Laravel HTTP status code
<?php
// This can be found in the Symfony\Component\HttpFoundation\Response class
const HTTP_CONTINUE = 100;
const HTTP_SWITCHING_PROTOCOLS = 101;
const HTTP_PROCESSING = 102; // RFC2518
const HTTP_OK = 200;
const HTTP_CREATED = 201;
const HTTP_ACCEPTED = 202;
@sabrysuleiman
sabrysuleiman / indexnow api
Created October 8, 2024 18:35
indexnow api
# create api key
https://www.bing.com/indexnow/getstarted
# upload indexnow-api-key-file.txt to your website with content 'indexnow-api-key'
# indexnow.org
https://api.indexnow.org/indexnow?url=https://site.net/page-url/&key=indexnow-api-key
# bing.com
https://www.bing.com/indexnow?url=https://site.net/page-url/&key=indexnow-api-key
@sabrysuleiman
sabrysuleiman / gist:4a9c40d2e096ce0e3b3f6681eb1e88b7
Created October 3, 2024 19:06
Wordpress tinymce windowManager body types
editor.windowManager.open({
title: 'Options',
body: [
{
type : 'listbox',
name : 'imgalign',
label : 'Image direction',
values : [
{ text: 'Image right', value: 'right' },
@sabrysuleiman
sabrysuleiman / CSS media queries
Created July 1, 2024 15:05
CSS media queries
/*
##Device = Desktops
##Screen = 1281px to higher resolution desktops
*/
@media (min-width: 1281px) {
/* CSS */
}