Bryan G. Granse

I am a Front End Developer

Bryan G. Granse

I am Working as WordPress Designer and Developer, I graduated last 2014, taking a cours of Bachelor of Science in Information Technology, since then I started working as freelancers full time for my previous client, and what I am doing is to design a new website from Digital site, Agency Site, Ecommerce or Shopping site using Woocommerce, Magento, Shopify and Opencart, I am expert in terms of Managing Cpanel, On page SEO, Keyword Research, Banner Design Using Adobe Photoshop, installing WordPress CMS from scratch, connect Cpanel hosting fo a new domain, able to work full time and flexible for Emergency task or urgent task.

Me

My Professional Skills

I am a full-stack developer specializing in WordPress (Bricks, Oxygen, Elementor Pro) and custom AI-integrated websites built with React JS and Laravel. I combine technical expertise in PHP, HTML, CSS, and JS with Bootstrap responsiveness and Adobe Photoshop design to create high-performance E-commerce platforms and landing pages. My approach integrates Technical SEO, speed optimization, and CPanel management with data-driven Facebook and Google Ads strategies using Clickfunnels, Leadpages, or OptimizePress to deliver scalable, high-conversion digital solutions.

Web Design / JavaScript 90%
Web Development & Cpanel Management 85%
PHP, HTML & CSS and Mobile Responsive 95%
Wordpress / Custom WP eCommerce 98%

Website Development

I can work with less management as long as task for website is cleared, I have strong capabilities on my own suggestions about your website plan.

Animated elements

If you love to have a website sliders or Photo effects or one page design, I can do it for you I have best Themes for your website plan.

Responsive Design

Responsiveness is always one of the important thing when you have a website, and I can optimize mobile responsiveness according to your request, I use mobile media query CSS.

Modern design

I can make a good look and professional website or even you give me a website refference of what kind of website you want to be done.

Flexible and with New PC and Fast Internet

Previously I encountered problems of my internet due to basic plan so I was upgrading my plan and avail 10mpbs internet connection, which you can surely I am available during working hours or even urgent time.

Fast support

I always depend on my client (especially with the changes of particular task) and I am able to work with pressure, if the task needs to be done in a time frame I will do more effort and make the job done before the given time frame.

0
completed project
0
Clients
0
facebook like
0
current projects
  • How to Sort The Events Calendar Chronologically (Jan to Dec) in WordPress Using Custom PHP

     


    When building an events section or timeline on a WordPress website using plugins like The Events Calendar, a common hurdle developers face is query ordering. By default, WordPress queries sort posts by their Published Date (the day you created the post in the dashboard).

    However, for an events timeline, this creates a confusing user experience. If you add an event in March that actually takes place in December, WordPress will natively place it based on March. What we actually want is a strict chronological sequence from January to December based on the actual event date.


    In this tutorial, we will look at how to intercept the WordPress query using custom PHP to sort your events perfectly.

    The Challenge with Standard Loops

    Page builders and standard loop builders look at the main WordPress post table (wp_posts). But The Events Calendar stores the actual event dates inside hidden custom fields (metadata) called _EventStartDate.

    To force your slider, carousel, or loop builder to order correctly, we need to inject code into the pre_get_posts action hook, which allows us to manipulate query variables before the database retrieves the posts.

    The Implementation Code

    Here is the production-ready PHP snippet. You can place this inside your child theme's functions.php file, a site-specific snippet plugin, or safely inside an Oxygen Builder Code Element:

    <?php

    /**

     * BryDev Event Sequence Fix

     * Automatically sorts 'The Events Calendar' posts from January to December based on Event Date

     */


    if (!function_exists('brydev_bha_slider_sequence_fix')) {

        function brydev_bha_slider_sequence_fix($query) {

            // 1. Safety Check: Never alter backend admin lists

            if (is_admin()) {

                return;

            }


            // 2. Targeting Check: Target main queries or specific 'tribe_events' custom post type loops

            if ($query->is_main_query() || (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'tribe_events')) {

                

                // Tell WordPress to look at the hidden Event Start Date custom field

                $query->set('meta_key', '_EventStartDate');

                

                // Order the query by the value of that metadata field

                $query->set('orderby', 'meta_value');

                

                // Set order to ASC (Ascending) for January to December sequence

                $query->set('order', 'ASC');

            }

        }

    }


    // Security Reset: Clear previous hook registrations to prevent duplicate triggers in builder previews

    remove_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    add_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    ?>

    Code Breakdown: How it Works Under the Hood

    1. The Metadata Target (_EventStartDate)

    Instead of ordering by post_date, we tell WordPress: meta_key = _EventStartDate. This points the database directly to the specific timestamp of when the event actually happens.

    2. Ordering Logic (meta_value + ASC)

    By setting orderby to meta_value, we ensure that the ordering evaluation relies entirely on the custom field data. Combining this with order = ASC (Ascending) means the system will evaluate the database timestamps from the oldest/earliest to the newest/latest, perfectly achieving a January to December chronological cascade.

    3. Preventing Backend Pollution (is_admin())

    Without the is_admin() check, this script would also rearrange the list of events inside your WordPress Dashboard (wp-admin). This guard ensures that your backend table views remain untouched and normal for content managers, while the frontend displays the filtered chronological timeline to visitors.

    4. The Builder Blueprint Shield

    The script wraps everything inside a if (!function_exists(...)) declaration and pairs it with a remove_action filter reset. This architecture is crucial if you are executing the script inside high-performance page builders like Oxygen. It prevents the server from crashing due to repetitive background AJAX saves or Server-Side Rendering (SSR) tasks, making your codebase completely unbreakable.

    By intercepting the native pre_get_posts loop, you don't have to rebuild complex custom queries or hardcode loops from scratch. Your existing slider elements, grid layouts, and design builders will seamlessly read the correct chronological data.

  • Fixing the "Cannot Redeclare Function" Error in Oxygen Builder Custom Elements

     


    As WordPress developers working with advanced layout systems like Oxygen Builder, we frequently leverage the Code Element to inject dynamic PHP scripts and alter default query states. However, because of Oxygen’s optimized design workspace—which continuously processes elements utilizing Server-Side Rendering (SSR) and specialized AJAX requests—standard procedural PHP scripts can occasionally trigger fatal system lockouts during routine layout modifications.

    This post analyzes a real-world case study involving a customized slider script for an events timeline that suddenly triggered an E_COMPILE_ERROR whenever a user attempted to modify and save basic image blocks within the workspace.

    The Symptoms: A Broken Admin Page and a Disconcerting Email

    The issue surfaced unexpectedly when an administrator attempted to modify standard images on the home page. Upon clicking the save button, the layout builder crashed, leaving behind a blank interface and dispatching an automated WordPress recovery email containing the following diagnostic signature:

    An error of type E_COMPILE_ERROR was caused in line 4 of the file 

    /www/wp-content/plugins/oxygen/subplugins/oxygen-elements/elements/PHP_Code/ssr.php(10) : eval()'d code. 

    Error message: Cannot redeclare brydev_bha_slider_sequence_fix() (previously declared in ...)

    Phase 1: Analyzing the Faulty Implementation

    The initial objective was straightforward: re-order a post loop generated via a query builder to display custom events sequentially from January to December based on event date metadata. The original functional block inserted into the Oxygen PHP container was structured as follows:

    <?php
    // THE ORIGINAL FAULTY CODE
    function brydev_bha_slider_sequence_fix($query) {
        if (is_admin()) {
            return;
        }
        if ($query->is_main_query() || (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'tribe_events')) {
            $query->set('meta_key', '_EventStartDate');
            $query->set('orderby', 'meta_value');
            $query->set('order', 'ASC');
        }
    }
    add_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);
    ?>

    Why This Caused a Fatal System Failure: While this logic runs flawlessly in a traditional singular page load routine, Oxygen Builder behaves differently. When a user updates elements on the workspace (like updating an image block) and clicks Save, Oxygen initiates back-end AJAX commands to dynamically validate and compile layout structures. This causes the execution layer to run the script multiple times within a single server request lifecycle.

    Because PHP strictly forbids naming conflicts, declaring the exact same function name twice concurrently triggers an immutable compile-time halt (Cannot redeclare...).

    Phase 2: Developing the Robust Structural Remedy

    To eliminate the execution collisions, the custom script required code insulation to ensure it seamlessly tolerates repetitive back-end processing runs without clashing against already loaded system states. Below is the updated, production-ready fix applied directly within the element workspace:


    <?php

    // THE FINAL FIXED CODE

    // Structural Safeguard: Verify the execution registry before compiling the function block

    if (!function_exists('brydev_bha_slider_sequence_fix')) {

        function brydev_bha_slider_sequence_fix($query) {

            // Prevent backend administration lists from being systematically altered

            if (is_admin()) {

                return;

            }

            // Target the dedicated query pipeline associated with the events framework

            if ($query->is_main_query() || (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'tribe_events')) {

                $query->set('meta_key', '_EventStartDate');

                $query->set('orderby', 'meta_value');

                $query->set('order', 'ASC');

            }

        }

    }

    // Detach any previous runtime alignment instances to guarantee single-execution purity

    remove_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    add_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    ?>

    Step-by-Step Breakdown: Why the Fix Succeeds


    1. Implementing the Function Guard Clause

    The wrapping statement if (!function_exists(...)) intercepts the PHP compilation chain. Prior to declaring the internal logic, the compiler checks if the reference label already exists in active memory. If it does (e.g., during a secondary SSR execution block during an AJAX save event), the runtime instantly bypasses the block, neutralizing the Cannot redeclare exception entirely.


    2. Decoupling Hooks via remove_action

    Because Oxygen periodically evaluates layout blocks inline to preview data in real-time, simply validating the function wrapper is insufficient. Repeated initializations would continue stacking hook dependencies across the global pre_get_posts pipeline. By invoking remove_action explicitly right before add_action, we scrub clean any previous layout state alignments, binding exactly one execution path to the active instance.


    3. Preserving Backend Layout Contexts

    The conditional snippet if (is_admin()) { return; } ensures that custom filters remain entirely isolated to frontend visitor views. Without this guard, WordPress administrative dashboards and core table listings for events would inadvertently absorb the custom meta adjustments, potentially skewing standard entry sorting operations within the administrative panel.


    Conclusion & Best Practices

    While embedding functional fixes inside Code Elements addresses localized blocks effectively, the absolute safest architecture for WordPress page builders is deploying core procedural manipulations via a Dedicated Child Theme's functions.php file or using structured snippet management systems (like the Code Snippets plugin). This shields your logic completely from page-builder AJAX execution instances and ensures your system maintains maximum resilience.

  • Simple and quick way to add fallback image in Oxygen Builder Classic

     If you have a hero section that is playing a video background, and you are facing issues about it where it shows empty background when video is not loaded yet, this is the CSS solution that will help you solve the problem.


    background-image: url('imageurl.jpg');

    background-size: cover;

    background-position: center;

    position: absolute;

    inset: 0;

    z-index: 1;

    transition: opacity 0.5s ease;


    Just  copy the code above, and while the section is active go to advanced and paste it inside Custom CSS. make sure you replace the imageurl.jpg to your actual image background fallback.

    That's it.

  • Bricks Builder: How to Align the Checkbox and the Label using simple CSS

     

    How to Align the Checkbox and the Label using simple CSS

    In most cases, the label and checkbox align to each other, but what if you have a long text and viewing it on the wide screen makes the checkbox and label stack to each other, now this simple solution using CSS will help you solve the problem.

    Since the id of the input is dynamic we will be using a selector to select input and the label.

    CSS Code:

    input[type="checkbox"] + label {
    display: inline;
    }

    CSS code to inline checkbox and the label BRICKS BUILDER


  • Show Current Event of the Month Using PHP with Shortcode for The Event Calendar

    The Event Calendar has its own shortcode feature but only for PRO users, which of course if you are a serious users of your own business where you have your own website that uses this plugin then I suggest you use purchase this plugin it has a great features to offer for pro users.

    You can view a demo to their official website, that we you have a quick glance how this plugin works, now if you have a client that has a concern of budget, will this PHP code will help you do the thing like make a customize simple layout design where you have a chance to customize the event page but of course this PHP short code will only show the current event of the month with search functionality that targets to actual events in The Event Calendar plugin.


    As you can see on the screenshot above there is a date above that shows the current date, that is not included in the code, I use an Elementor to display that but I will also include the php code that will display a date incase you want it as well. the main functionality of their is the Search Function, and the listing the current event of the month.

    View Code On My Git Hub

    The code has two files, one is PHP and the second one is CSS (EventCalendarShortCodeSnippets.css / EventCalendarShortCodeSnippets.php) these two files is necessary for starting point, if you know about css you can ignore the css files and add your own css base on that php code, just copy the PHP code and paste it using Code Snippets or into functions.php, will create a video tutorial below how to implement it for the sake of beginners.

    If you have any issues running it please let me know, also ensure that THE EVENT CALENDAR is already activated and that you have an event of the current month so you know its working. 


  • Bricks Builder Tips and Tricks and More

     Bricks builder is one of the trend page builder for WordPress, this article is simple we will put any useful tools here that can be use for actual products of building page such as responsiveness and more.


    Bricks Grid Template:

    This function below is useful especially if your using bricks and you want to set the minmax base on the page width say 1100px and also you can customize it to your liking.

    repeat(auto-fit, minmax(400px, 1fr)) - it set to function auto-fit for responsiveness and then set 400 for 2 columns with 1 fraction, this 400px is base on page-width size.

    repeat(2, minmax(200px, 1fr)) - This is also simple and straight forward, the grid template here os suggested base on bricks documentation.

  • Portfolio: Mockup Design Using Figma

     

      

    My Mockup Design List Using Figma

    Figma is a design tool that helps teams create and work together on mockups in real-time. It's cloud-based, so team members can collaborate from anywhere. Figma has many design features like wireframes, prototypes, and design libraries. It's easy to use and helps teams work more efficiently to produce high-quality designs.

    Below is the following page design I made for my client and would add more here in the future.

    Note: This design is made with inspiration, you can get my ideas here if you want.



  • Free SEO Plugin I Use for WordPress On-Page SEO

     


    There are lots of plugins out there that you can start working out in terms of making your own way to improve the SEO or Search Engine Optimization of your website or even for your client, so one of the Top 3 plugins that are popular today is:

    1. Yoast SEO
    2. All-In-One SEO
    3. Rank Math
    Other WP Plugins :
    1. Meta Tag Manager
    2. Schema
    3. Add Meta Tag Keywords
    Chrome Extension or Website Tools
    1. Keywords Everywhere
    2. SEMRush
    3. Google Keyword Planner
    4. Google Trend
    5. SEO Quake

  • Background Overlay Elementor Pro and Free Version Custom CSS

     This is a quick background overlay code for Pro Version:

    /*Tablet background Overlay Elementor Pro*/
    @media(max-width:1024px){
        selector.elementor-element > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    80deg, #000000 20%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }
    /*Mobile background Overlay Elementor Pro*/
    @media(max-width:767px){
        selector.elementor-element > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    180deg, #000000 20%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }

    This is a code for quick styling of the mobile in the Elementor Free version:




    /*Tablet background Overlay Elementor Free*/
    @media(max-width:1024px){
        .bg-overlay.elementor-element.bg-overlay > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    90deg, #000000 30%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }

    /*Mobile background Overlay Elementor Free */
    @media(max-width:767px){
        .bg-overlay.elementor-element.bg-overlay > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    180deg, #000000 30%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }

    You can watch the tutorial base on this video here
  • How to Make Horizontal Divider Line in Elementor Into Vertical Line Divider

     This kind of strategy is easy to implement just go to your Elementor editor where you edit the page then drag the Divider element, do some settings changes, then add this line of code below into the Custom CSS.

    Also, you need to change the width from Percentage into Pixels:


    selector{
        transform: rotate(90deg)
    }

    Note that you can also use this for any element simple but do the job done. Cheers!


  • Pricing Plan Design I created Using Elementor Pro

     


    This is just a simple Pricing plan that I created using Elementor PRO, you can get inspiration from this design, it's a highlighted layout in the Pro Plan and the rest is just a normal box.

    It's a Price Table Element from Elementor Pro, and from there you can tweak the layout, depending on your preference, when you also hover over each pricing table there is a default shadow which you can also adjust.

    I will update this page once I made another layout using Elementor Pro.

    Thanks!


  • GET A FREE QUOTE NOW

    I am flexible and would like to work with you long term, and currently I am looking for a fulltime job with a long term opportunity, but able to work also part-time, get free qoute for project.

    Search This Blog

    Powered by Blogger.

    Mga Pahina

    How to Sort The Events Calendar Chronologically (Jan to Dec) in WordPress Using Custom PHP

      When building an events section or timeline on a WordPress website using plugins like The Events Calendar , a common hurdle developers fac...

    ADDRESS

    Purok 5-A, Brgy. Magdum, Tagum City 8100, Davao del Norte, Philippines

    EMAIL

    gransebryan[at]gmail.com
    bryanworkdevs[at]gmail.com