Tag: php

  • How to Implement a WooCommerce AJAX Direct “Buy Now” Button

    How to Implement a WooCommerce AJAX Direct “Buy Now” Button

    When you’re running an online store using WooCommerce, making the purchasing process as seamless as possible is crucial. One effective way to do this is by adding a “Buy Now” button that allows customers to directly purchase a product without navigating through multiple pages. This blog will walk you through creating a WooCommerce AJAX “Buy Now” button using the provided code snippets.



    Step 1: Add the “Buy Now” Button

    First, you need to add a custom “Buy Now” button on your WooCommerce product pages. We’ll do this by hooking into the woocommerce_after_add_to_cart_button action, which places our button right after the standard “Add to Cart” button.

    Here’s the PHP code snippet:

    add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );
    function add_content_after_addtocart() {
        $current_product_id = get_the_ID();
        $product = wc_get_product( $current_product_id );
    
        if( $product->is_type( 'simple' ) ){
            echo '<button data-id="'.$current_product_id.'" class="buy-now button"><i class="matico-icon-toys"></i>'.__('Buy Now', 'woocommerce').'</button>';
        }
    }
    
    Enter fullscreen mode

    Exit fullscreen mode

    Explanation:

    • We use the woocommerce_after_add_to_cart_button hook to insert our “Buy Now” button right after the “Add to Cart” button.
    • The get_the_ID() function retrieves the current product ID, and wc_get_product() gets the product details.
    • We check if the product is of type simple and then render the button with the appropriate data-id attribute and a custom icon.



    Step 3: Enqueue the Script

    Next, you need to enqueue the script in your theme to ensure it’s loaded properly on your WooCommerce pages. Here’s how to do it:

    wp_enqueue_script('matico-child-script', get_stylesheet_directory_uri() . '/assets/js/script.js', array( 'jquery', 'scrollfix-script' ),  $matico_version, true);
    
    wp_localize_script( 'matico-child-script', 'matico_child_script_obj',
        array( 
            'checkout_page_url' => wc_get_checkout_url(),
        )
    );
    
    Enter fullscreen mode

    Exit fullscreen mode

    Explanation:

    • wp_enqueue_script() is used to load our custom script file (script.js), which contains the jQuery code.
    • wp_localize_script() passes PHP data to the script, such as the checkout page URL, allowing us to use it within the script.



    Step 2: Handle the AJAX Request

    Finally, we’ll handle the button click event using jQuery. The jQuery script sends an AJAX request to WooCommerce, which adds the product to the cart and then redirects the user directly to the checkout page.

    Here’s the jQuery code snippet:

    (function ($) {
        var MaticoChildThemeConfig = {
            init: function () {
                this.bindEvents();
            },
            bindEvents: function () {
                $(document).on('click', '.buy-now', this.handleBuyNowClick);
            },
            handleBuyNowClick: function (event) {
                event.preventDefault();
    
                var $button = $(this),
                    quantity = parseFloat($button.closest('.quantity').find('.qty').val()) || 1,
                    productID = $button.data('id');
    
                var data = {
                    product_id: productID,
                    quantity: quantity,
                };
    
                $.ajax({
                    type: 'POST',
                    url: wc_add_to_cart_params.wc_ajax_url.toString().replace('%%endpoint%%', 'add_to_cart'),
                    data: data,
                    dataType: 'json',
                    beforeSend: function () {
                        $button.addClass('loading');
                    },
                    success: function (res) {
                        if (res.error && res.product_url) {
                            window.location.href = res.product_url;
                        } else {
                            window.location.href = matico_child_script_obj.checkout_page_url;
                        }
                    }
                });
            }
        };
    
        MaticoChildThemeConfig.init();
    })(jQuery);
    
    Enter fullscreen mode

    Exit fullscreen mode

    Explanation:

    • When the “Buy Now” button is clicked, we prevent the default action to avoid page reload.
    • We gather the product ID and quantity from the current product page.
    • An AJAX request is sent to WooCommerce’s add_to_cart endpoint, which adds the product to the cart.
    • If the product is successfully added, we redirect the user to the checkout page. If there’s an error (e.g., the product is no longer available), the user is redirected to the product page.



    Conclusion

    By implementing the above steps, you can create a “Buy Now” button that streamlines the purchasing process for your customers. This feature is particularly useful in boosting conversions by reducing the number of clicks and pages a customer needs to navigate before completing a purchase.

  • How to Install WordPress and Essential Plugins Using WP-CLI

    How to Install WordPress and Essential Plugins Using WP-CLI

    Setting up a WordPress site can be time-consuming if done manually, but with WP-CLI, the process becomes much faster and more efficient. In this tutorial, I’ll show you how to install WordPress along with a few essential plugins using a single command sequence.



    Step 1: Download WordPress Core

    First, you’ll need to download the WordPress core files. This command will download WordPress to a directory called mywebsite.

    wp core download --path=mywebsite
    
    Enter fullscreen mode

    Exit fullscreen mode



    Step 2: Create the Configuration File

    Navigate into the newly created mywebsite directory, and create the wp-config.php file with your database credentials:

    cd mywebsite
    wp config create --dbname=silk --dbuser=root --dbpass=root
    
    Enter fullscreen mode

    Exit fullscreen mode



    Step 3: Create the Database

    Now, create the database using the following command:

    wp db create
    
    Enter fullscreen mode

    Exit fullscreen mode



    Step 4: Install WordPress

    Install WordPress using your local URL, site title, and admin credentials:

    wp core install --url=mywebsite.test --title="Site Title" --admin_user=admin --admin_password=admin --admin_email=mywebsite@welabs.dev
    
    Enter fullscreen mode

    Exit fullscreen mode



    Step 5: Install and Activate Plugins

    Finally, install and activate the necessary plugins. In this example, we’ll install WooCommerce and Dokan Lite:

    wp plugin install woocommerce --activate
    wp plugin install dokan-lite --activate
    
    Enter fullscreen mode

    Exit fullscreen mode



    All-in-One Command Sequence

    For your convenience, here’s the entire process in one continuous block of code. Just copy and paste the code below into your terminal to install WordPress and a few plugins with a single command.

    wp core download --path=mywebsite
    cd mywebsite
    wp config create --dbname=silk --dbuser=root --dbpass=root
    wp db create
    wp core install --url=mywebsite.test --title="Site Title" --admin_user=admin --admin_password=admin --admin_email=mywebsite@welabs.dev
    wp plugin install woocommerce --activate
    wp plugin install dokan-lite --activate
    
    Enter fullscreen mode

    Exit fullscreen mode

    Prerequisite: Install WP-CLI to you machine.