Author:

  • How to Add aria-label And alt Tags to Your Divi Search Bar

    Some of the code in Divi isn’t hooked into WordPress’ filter and action hooks. A good example: the menu system, especially the Search box. It needed WCAG descriptive tags and labels for the search open and close button.

    The et_core_esc_previously() Function

    et_core_esc_previously() is a function that is used in the Divi theme from Elegant Themes. The purpose of this function is to sanitize input data by escaping special characters, such as quotes and angle brackets, to prevent potential security vulnerabilities like cross-site scripting (XSS) attacks.

    The function takes a single parameter, which is the data to be sanitized. It then applies a series of filters to the data to escape any characters that could potentially be used for malicious purposes. The sanitized data is then returned by the function.
    The et_core_esc_previously() function is one of the Divi core functions. In the code base, it checked to see if the function as already been defined. If it has, it simply passes through the value. For the sake of adding labels, I added a custom version of this function my child theme’s functions.php file (see below). I looked for a string that surrounds where I want to add in the aria-label and alt tag. The str_replace() function was used to find-replace labels changes into place.

    if(!(function_exists('et_core_esc_previously'))) {
       function et_core_esc_previously( $passthru ) {
           $passthru = str_replace('class="et_pb_menu__icon et_pb_menu__close-search-button"></button>', 'class="et_pb_menu__icon et_pb_menu__close-search-button" alt="close search" aria-label="close search"></button>', $passthru);
           $passthru = str_replace('et_pb_menu__search-button"></button>', 'et_pb_menu__search-button" alt="open search" aria-label="open search"></button>', $passthru);
           return $passthru;
       }
    }

    What is WCAG?

    WCAG stands for Web Content Accessibility Guidelines: a set of guidelines from the World Wide Web Consortium (W3C) to make web content more accessible to people with disabilities.

    The guidelines are organized into three levels of conformance: A, AA, and AAA. Level A includes the most basic guidelines for web accessibility, while level AAA includes the most advanced guidelines. Achieving level AA compliance is considered the industry standard for web accessibility.

    WCAG guidelines cover a wide range of topics, including text alternatives for non-text content, keyboard accessibility, color contrast, language markup, and navigation. By following these guidelines, website owners can ensure that their content is accessible to people with disabilities, including those who are blind or visually impaired, deaf or hard of hearing, or have physical or cognitive disabilities.

    In many countries, adherence to the WCAG guidelines is legally required for government and public sector websites. Even for private sector websites, compliance with WCAG is becoming increasingly important to ensure that all users can access web content. Best of all: it’s a set of good practices. WCAG compliant sites attract more visitors. A WCAG compliant site speaks more clearly to search engine spiders and AI agents.

     

    How did I find this?

    The starting point: the output. From there, I looked backwards. I looked at the HTML and found the ‘close-search-button’ phrase. I searched all of the Divi parent theme files for that phrase. Once found, I looked for the function that called that code. I found the function that called that function, et_core_esc_previously(). This function is referenced a number of times, so it’s a decent function to work with the get the HTML to output different code.

  • Ultimate Lists: How To Use Shortcodes Ultimate to Build Great Lists In WordPress

    Shortcodes Ultimate is a popular WordPress plugin that provides a variety of shortcodes that allow users to add various functionality and design elements to their website. One of the most useful shortcodes in the plugin is the su_post shortcode, which allows users to display posts on their website with customizable options.

    In this article, we will go over how to use the su_post shortcode, including its syntax, available attributes, and some examples of how to use it.

    Syntax of su_post Shortcode

    To display a post using the su_post shortcode, you would use the following syntax:

    Ultimate Lists: How To Use Shortcodes Ultimate to Build Great Lists In WordPress

    “post_ID” is the ID number of the post you want to display.

    Attributes of su_post Shortcode

    The su_post shortcode has a number of attributes that you can use to customize the way your posts are displayed. Here are the available attributes:

    id

    The “id” attribute is required for the su_post shortcode, as it specifies which post to display. To use this attribute, you need to replace “post_ID” in the basic syntax with the actual ID number of the post you want to display.

    For example, if the ID number of the post you want to display is 123, you would use the following code:

    Ultimate Lists: How To Use Shortcodes Ultimate to Build Great Lists In WordPress

    post_type

    By default, the su_post shortcode displays posts from the “post” post type. However, you can use the “post_type” attribute to display posts from other post types, such as “page” or a custom post type.

    To use this attribute, simply add it to the shortcode and set its value to the post type you want to display. For example, to display a page with ID 456, you would use the following code:

    Ultimate Lists: How To Use Shortcodes Ultimate to Build Great Lists In WordPress

    class

    The “class” attribute allows you to add custom CSS classes to the HTML elements generated by the shortcode. This can be useful for styling the output of the shortcode with CSS.

    To use this attribute, simply add it to the shortcode and set its value to the CSS class(es) you want to use. For example, to add the class “my-custom-class” to the output of the shortcode, you would use the following code:

    Ultimate Lists: How To Use Shortcodes Ultimate to Build Great Lists In WordPress

    template

    The “template” attribute allows you to use a custom template file to display the post. This can be useful if you want to display posts in a specific way that is not possible with the default output of the shortcode.

    To use this attribute, simply add it to the shortcode and set its value to the file path of the template you want to use. For example, to use a template file called “news-loop.php” located in your theme’s directory, you would use the following code:

    Ultimate Lists: How To Use Shortcodes Ultimate to Build Great Lists In WordPress
    <ul class="su-posts su-posts-news-loop">
    <?php
    // Posts are found
    if (isset($args['data'])) {
    $posts = $args['data'];
    }
    if ( $posts->have_posts() ) {
    $cat_singular = array(
    'blog' => 'Blog',
    'case-study' => 'Case Study',
    'company-update' => 'Company Update', 
    'new' => 'News',
    'resources' => 'Resources',
    'videos' => 'Videos'
    );
    
    $cat_css = array(
    'blog' => 'blog',
    'case-study' => 'case-study',
    'company-update' => 'company-update', 
    'new' => 'news',
    'resources' => 'resource',
    'videos' => 'video'
    );
    
    $cat_img = array(
    'blog' => '/wp-content/themes/CustomTheme/assets/img/article-sm.png', n
    'articles-whitepapers' => '/wp-content/themes/CustomTheme/assets/img/article-sm.png',
    'case-studies' => '/wp-content/themes/CustomTheme/assets/img/case_study-sm.png',
    'new' => '/wp-content/themes/CustomTheme/assets/img/article-sm.png',
    'resources' => '/wp-content/themes/CustomTheme/assets/img/article-sm.png',
    'videos' => '/wp-content/themes/CustomTheme/assets/img/video-sm.png'
    ); 
    
    
    $roundout = 0;
    while ( $posts->have_posts() ) {
    $posts->the_post();
    global $post;
    
    $singular = 'N/A';
    $css = 'na'; 
    $roundout++;
    
    $categories = get_the_category(); 
    $tags = get_the_tags(); 
    
    // print print_r($categories, TRUE);
    
    // should be one per...
    foreach ($categories as $cat) {
    if (array_key_exists($cat->slug, $cat_singular)) {
    $cat_slug = $cat->slug; 
    $singular = $cat_singular[$cat_slug];
    if (isset($cat_css[$cat_slug])) {
    $css = $cat_css[$cat_slug];
    } 
    else {
    $css = '';
    }
    if (isset($cat_img[$cat_slug])) {
    $img = $cat_img[$cat_slug];
    } 
    else {
    $img = '';
    }
    
    break;
    }
    }
    // get all tags
    $tag_list = "";
    $comma = "";
    if ($tags) {
    foreach ($tags as $tag) {
    $tag_list .= $comma.'<a href="' . esc_attr( get_tag_link( $tag->term_id ) ) . '">' . __( $tag->name ) . '</a>';
    $comma = ", ";
    }
    } 
    ?>
    <li id="su-post-<?php the_ID(); ?>" class="su-post <?php print $css; ?>-grid"><a href="<?php the_permalink(); ?>">
    <?php if ($loop_thumb = get_the_post_thumbnail_url() ) { ?>
    <div class="su-top" style="background-image: url('<?php echo $loop_thumb; ?>');">
    <?php }
    else {
    ?>
    <div class="su-top" style="background-color: #888888;">
    <?php } ?>
    <img src="/wp-content/uploads/2023/01/blank.png" style="width: 100%; height: 25vh;" />
    </div>
    <div class="su-middle"> 
    <h3 class="su-post-title rightarrow"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    <em><?php echo $tag_list; ?></em>
    <?php 
    if ($excerpt = get_the_excerpt()) {
    print "<p>".$excerpt."</p>"; 
    print "<br/>";
    }
    ?>
    <?php print $runtime; ?>
    </div> 
    <div class="su-bottom">
    <span class="date"><?php print get_the_date('F j, Y', get_the_ID()) ?></span>
    <span class="link"><a class="rightarrow" href="<?php the_permalink(); ?>">Link</a></span>
    </div>
    
    </li>
    <?php
    }
    }
    // Posts not found
    else {
    ?>
    <li><?php _e( 'No Results', 'shortcodes-ultimate' ) ?></li>
    <?php
    }
    ?>
    </ul>
    

    The news-loop.php goes into the templates sub-directory of the site’s active theme. When the template loops through the su_posts result, the template will handle the output. In our example, the control of the output lets us add more formatting and supporting information.

    The su_posts shortcode is a versatile tool that can be used in many different ways to improve the functionality and user experience of your website. Shortcodes Ultimate is a popular WordPress plugin that provides a variety of useful shortcodes for adding various elements to your website.

    There are even more advanced ways to make use of the su_post shortcode. Want to know more?

  • Going Global: How To Use Global Divi Regions In The Divi Library

    The Divi theme library is a powerful tool that can help you save time and streamline your website design process.
    blankOne of the key features of the Divi library is the ability to create global rows. Global rows are essentially modules that you can reuse throughout your website, and any changes you make to the global row will automatically be reflected on all pages where the global row is used. In this article, we’ll take a look at how to use the Divi theme library to create global rows that display one source of content on multiple pages.

    Step 1: Create Your Initial Content

    The first step in creating a global row is to create your content. This could be anything from a call-to-action (CTA) module to a Tabs module to a pricing table or a contact form. For the purposes of this tutorial, we’ll implement a Tabs module that will be displayed on multiple pages. We needed to repeat that information in multiple places on the website, while still keeping it consistent. The solution is to use the Divi library capacity for globalized elements that are deployed in multiple pages. One change is seen in all the places where the Divi element is deployed.

    To create a new Tabs module, go to the Divi Builder and click on the green plus button to add a new module. Select the “Tabs” module from the list of available modules.

    Once you’ve selected the Tabs module, you’ll be taken to the module settings page. Here, you can customize your Tabs module to your liking. You can change the title, text, button text, and button URL, among other things.

    Once you’ve finished customizing your Tabs module, save the module by clicking on the green “Save & Exit” button in the bottom right-hand corner of the screen.

    blank

    Step 2: Save the Tabs Module to the Divi Library

    Now that you’ve created your Tabs module, the next step is to save it to the Divi library. To do this, hover over the Tabs module in the Divi Builder and click on the three vertical dots in the top right-hand corner of the module. Select “Add to Library” from the dropdown menu.

    This will open the Add to Library dialog box. Here, you can give your Tabs module a name and description, as well as choose whether to save the module as a global module. Make sure the “Make Global” checkbox is selected, and then click on the green “Save to Library” button.

    Step 3: Add the Global Row to Your Pages

    blankNow that you’ve saved your Tabs module as a global module in the Divi library, you can add it to your pages. To do this, go to the page where you want to display the Tabs module and click on the purple plus button to add a new module. Select “Add From Library” from the dropdown menu.

    This will open the Divi library. Here, you’ll see all of the modules and layouts you’ve saved to the library. Find the Tabs module you just created and click on the “Insert” button.

    Once you’ve added the Tabs module to your page, you can customize it to your liking. However, any changes you make to the module will only be reflected on the page where the module is used.

    If you want to make changes to the Tabs module that will be reflected on all pages where the module is used, you’ll need to edit the global module in the Divi library.

    Step 4: Edit the Global Module in the Divi Library

    blankTo edit the global module in the Divi library, go to the Divi Builder and click on the three horizontal lines in the top left-hand corner of the screen. Select “Divi Library” from the dropdown menu.

    This will take you to the Divi library, where you’ll see all of the modules and layouts you’ve saved. Find the Tabs module you want to edit and click on the “Edit” button.

    This will place the Tabs module in the Divi Builder.

  • Why People Like Elementor (but we still don’t)

    The TLDR: There is no real comparison between Elementor and Divi; however, it doesn’t necessarily mean that Elementor is the best option. We use Divi and we love it. For us, Divi can turn out fantastic results.

    Why is Elementor considered better?

    • Unlike Divi, Elementor doesn’t use shortcodes. This means that when you disable the page builder, it doesn’t create a messy code. Although editing content becomes slightly more challenging, the pages remain mostly intact and clean, avoiding unnecessary clutter. We find shortcodes are a really versatile way to control the functionality of a page.
    • In terms of speed, Elementor can outperform Divi during the editing process. In speed tests, Elementor is only slightly slower on the front-end, which can be attributed to variations in server speeds rather than a significant performance difference. The sluggishness of Divi’s editing capabilities and lack of control in the editor make it an undesirable tool. I have encountered difficulties while making even the smallest changes for a client who was already using Divi. We can score very well with Divi sites. It’s about finding and removing bottlenecks.
    • Elementor provides a wide range of free elements in its free version, which is quite impressive. There is an ever growing number of Divi themes and layouts coming out. We often lean on Divi Express for common design elements.
    • Both Elementor and Divi are stable page builders, although Elementor is not considered the most stable option available. We find the Divi page builder’s views are really flexible and allow us to really drill into the design settings.

    Why we like Divi:

    • Aaccording to Elegant Themes website, the creator of Divi, The theme has been downloaded over 6 million times, and is used by hundreds of thousands of users worldwide. This makes it one of the most popular WordPress themes available.
    • It uses a clean and intuitive interface
    • Divi offers tremendous value for the money (also comes with a lifetime deal)
    • Use Divi on an unlimited number of websites (no limitations) with a full license.
    • The Divi drag and drop page builder is easy to use.
    • The Divi library is great for the re-use of designs and the linkage of design on distinct pages.
    • It comes bundled with an Extra WordPress theme
    • 100+ templates to choose from at Elegant Themes

    Elementor is more popular. That said, other authoring approaches competing for popularity include the baseline Gutenberg, Classic Editor, Beaver Builder and WP Bakery. Elementor has a great page builder that some developers can use to great effect.

    But what surpasses Elementor? Beaver Builder. While the free version may not offer as many features, the full version of Beaver Builder excels in terms of stability and ease of use, closely matching Elementor. Many feel it outshines both Elementor and Divi by a long way.

  • What is the best WordPress hosting site?

    What is the best WordPress hosting site?

    Choosing the right web hosting service is one of the most important decisions you’ll make when building a website. The best answer to “What is the best WordPress hosting site?” is going to differ from person to person. It’s going to be a combination of price, performance and customer service. A good web host should provide reliable uptime, fast loading times, and excellent customer support. When it comes to WordPress hosting, there are plenty of options to choose from. What follow is a list of hosting options and some brief info on each. I have personally posted clients to almost everyone of these services over the years. Full disclosure: if there is an affiliate link available to connect from this article to a particular option, I’ve used that affiliate link.

    Let’s take a look at some of the best WordPress hosting sites and compare them to help you make an informed decision.

    What to Look for in a Web Host

    Before we dive into the best WordPress hosting sites, it’s important to know what to look for in a web host. Here are some key factors to consider:

    1. Uptime: Uptime refers to the amount of time your website is up and running. A good web host should provide at least 99.9% uptime.
    2. Speed: Your website’s loading speed is crucial for user experience and SEO. Look for a web host that offers fast loading times.
    3. Customer support: If something goes wrong with your website, you need to be able to get in touch with your web host’s support team quickly and easily.
    4. Security: Your web host should provide robust security features to protect your website from hackers and malware.
    5. Scalability: As your website grows, you may need to upgrade your hosting plan. Look for a web host that offers scalable plans so you can easily upgrade when needed.

    Good pricing that’s not too good to be true: some services offer very low cost services that fall short. After that, they may try to upsell the customers on the level of service they actually need. Some services may offer low low prices to pull in a lot of clients, then they run it until their systems implode.

    Now that we know what to look for in a web host, let’s take a look at some of the best known WordPress hosting sites.

    Bluehost: Bluehost is one of the most popular web hosting services on the market, and for good reason. They offer reliable uptime, fast loading times, and excellent customer support. Bluehost also provides a one-click WordPress installation process, making it easy to get started with WordPress. Their plans start at $2.95 per month, making them an affordable option for beginners.

    SiteGround: SiteGround is another popular web hosting service that’s known for its excellent performance and customer support. They offer fast loading times, reliable uptime, and top-notch security features. SiteGround also provides a one-click WordPress installation process and automatic updates.  Their control panels gives customers access to memcaching and dynamic caching as well as a SiteGround CDN. Their plans start at $6.99 per month.

    WP Engine: WP Engine is a managed WordPress hosting service that’s designed specifically for WordPress websites. They offer lightning-fast loading times, excellent security features, and top-notch customer support. WP Engine also provides automatic updates and daily backups. Their plans start at $25 per month, making them a bit more expensive than other options on this list.

    WPPro: Exclusive ClassicPress / WordPress hosting for the discerning user. This hosting package is excellent for personal users and most businesses using ClassicPress or WordPress. Servers are optimized for both ClassicPress and WordPress and they provide you the freedom to run a great website.

    DreamHost: DreamHost is a reliable web hosting service that offers excellent uptime and fast loading times. They also provide a one-click WordPress installation process and automatic updates. DreamHost’s plans start at $2.59 per month, making them an affordable option for beginners.

    Hosting Nation: Hosting Nation’s cloud-based hosting plans for web designers are for professionals like you who would rather spend time designing beautiful sites than dealing with billing, renewals and technical support.

    InMotion Hosting: InMotion Hosting is a reliable web hosting service that offers excellent uptime and fast loading times. They also provide a one-click WordPress installation process and automatic updates. InMotion Hosting’s plans start at $2.49 per month, making them an affordable option for beginners.

    WPX Hosting: WPX Hosting is a premium WordPress hosting provider that focuses on speed, security, and customer service. It offers free site migration, daily backups, and malware removal. Its customer service is highly praised, with fast response times. However, it may be a bit pricey for small businesses or individual bloggers.

    HostPapa: HostPapa is a great option for small businesses, offering a range of affordable plans with plenty of features. It provides free domain registration, unlimited bandwidth, and a user-friendly control panel. It’s less expensive plans are hemmed in on how much processing they have available, and some full featured sites may feel the pinch. It also places a strong emphasis on green web hosting, using renewable energy to power its servers.

    GreenGeeks: As the name suggests, GreenGeeks is an environmentally friendly hosting provider. It’s an excellent choice for those who prioritize sustainability, as it’s committed to putting three times the power it consumes back into the grid in the form of renewable energy. It also offers solid performance and security features.

    A2 Hosting: A2 Hosting is a web hosting company that provides a range of hosting solutions for individuals and businesses. They offer shared hosting, VPS hosting, dedicated hosting, and reseller hosting plans, as well as specialized hosting for WordPress, Drupal, and Joomla sites. A2 Hosting boasts high-speed servers, 24/7 customer support, and a 99.9% uptime guarantee. They also offer a range of developer-friendly features, such as support for multiple programming languages, SSH access, and free SSL certificates. Overall, A2 Hosting is a reliable and affordable option for those looking for a variety of hosting solutions.

    When it comes to choosing the best WordPress hosting site, there are plenty of options to choose from. Hosting Nation and WPPro.ca are great options for Canadian websites. SiteGround and WP Engine have something for US websites. All of these are excellent choices that offer reliable uptime, fast loading times, and excellent customer support. Ultimately, the best WordPress hosting site for you will depend on your specific needs and budget. Be sure to consider factors like uptime, speed, customer support, security, and scalability when making your decision.

     

  • What’s the difference between posts and pages in WordPress?

    What’s the difference between posts and pages in WordPress?

    In WordPress, both posts and pages are common ways to publish content, but they serve different purposes:

    Posts:

    • Best for timely, regularly updated content: Use posts for blog entries, news updates, or announcements.
    • Organized by date, categories, and tags: Posts appear in reverse chronological order (newest first) and can be browsed by specific categories or tags. This structure helps readers explore related articles and stay up to date.
    • Dynamic and evolving: Because posts are time-sensitive, your list of posts naturally grows and changes as you publish more.

    Pages:

    • Ideal for static, timeless content: Use pages for information that doesn’t need frequent updating, like an About page, Contact page, or Pricing page.
    • Organized in a hierarchy: Pages can have parent/child relationships, making it easy to create a logical site structure. Visitors can navigate through your website to find what they need without scrolling through a blog feed.
    • Stable and long-term: Pages usually stay consistent over time and don’t rely on categories or tags.

    Both posts and pages use the WordPress editor, so adding text, images, and other media is familiar. However, pages often have simpler layouts, while posts may include more formatting and interactive elements to engage readers.

    Posts help you share timely content and keep your readers informed, while pages help you present important, lasting information about your site or business in a clear, navigable way.

    Posts and pages have different features and settings. For example, posts may have comments enabled by default, whereas pages may not. Posts may also have tags and categories, while pages do not. It’s important to understand these differences when creating content on a WordPress website, as it can help you choose the right content type for your needs.

    Posts are used to create blog posts, which are typically chronological and timely. Posts are organized by date and can be commented on and shared on social media. They are meant to be timely much like blog posts.

    Pages are used to create static content, such as your website’s homepage, about page, or contact page. Pages are not organized by date and cannot be commented on or shared on social media. Pages are more evergreen and foundational to your site: front pages, contact pages, FAQ pages etc..

    The biggest distinction is how they use different templates. Styling a page can be much more unique. If you update the blog template it will affect every blog.

    From a templating / theming perspective, in the core of WordPress you will see single.php and post.php. Then you will learn about the loop. The loop is what lists multiple posts and summaries. You will never have a summary of pages. The template hierarchy is very useful, you can read about it here. It’s common that a loop will iterate through relevant posts, but it’s uncommon to find a list of pages. That said, WordPress’ search will usually display both pages and posts in the search results.

  • Funding A Web Design With A Community Gaming Grant

    Funding A Web Design With A Community Gaming Grant

    Non-profits have the key challenge of doing great things with a shoestring budget. Volunteer effort goes so far to accomplish key tasks or those that require specialist talent. A great example: web design for non-profits like museums, music festivals and other community events. One avenue to delivering a website is by hiring a professional funded through a Community Gaming Grant from the Sports, Recreation, Arts and Culture ministry.

    We did a quick scan for funding sources and some programs have annual deadlines:

    British Columba’s Community Gaming Grant program supports ongoing community programs. Maintaining or upgrading a website is part of the cost involved in running the program. During the past few years with public health closures, many organizations have upgraded their websites and begun offering online courses, digital performance experiences and other virtual programming.  Community organizations have sought grants to help fund their website design and development. A well-designed website greatly enhances the online presence and reach of a community organization, helping it to better serve its constituents and engage with the public.

    When applying for a grant to fund a website design, demonstrate the need for the website upgrade: the benefits, the new features, functionality, opportunities and the impact the new site will have on the organization and the community it serves. Grant proposals should outline the scope of the project, including the design, development and hosting costs, a WordPress support maintenance plan, and a timeline and budget for the project.

    It is also important to emphasize the expertise and experience of the website design team, showcasing the team’s portfolio and highlighting any relevant certifications and awards. A well-written grant proposal should clearly articulate the benefits and return on investment that the community organization will receive from the grant funds.

    Costs related to upgrades are typically an eligible use of grant funds, but very rarely are considered as a wholly separate program. A Community Gaming Grant to fund a website design can be a rewarding process. It allows organizations to secure the funds they need to enhance their online presence and engage with the public in new and innovative ways.

    Stand-alone projects may be considered under smaller Capital Projects funding stream which supports projects that cost between $20,000 – $250,000. This is a competitive stream and requires matching funds be available at the time of application. Applicants can see who has received a capital project and the amounts awarded on the Sports, Recreation, Arts and Culture’s reporting webpage (scroll down to ‘See who received a Capital Project Grant in previous years’). The reporting shows that there have been a few in the past couple of years.

    The programs and projects funded by the Community Gaming Grant are community-driven. This means that they don’t fund based on government priorities, or have preferences for the types of programs funded; rather, the applicant demonstrates that what they are doing fills a community-identified need.

    Non-profits can reach out to program officers and ask for assistance with their applications. They can then review the file history, including previously approved programs and provide the best-individualized advice to each applicant.

    Web321 has helped a number of non-profits deliver grant-funded projects. We can help with the prep work and speak to what serves a non-profit, its audience and its community best. Likewise, we can be there to support the non-profit in managing their website and delivering on their mandate.

  • Linking Gravity Forms to BuddyPress Forums

    I was posed with problem: make BuddyPress forum topics from a Gravity Forms form submission. Turning Gravity Form submissions into posts isn’t a big party trick– that is built in. What doesn’t work, is the linkage to a particular forum as a new topic. So: I did some hacking (see the code below).

    • I made a gravity form
    • I have it posting to the post_type for topics
    • I put in a hidden value with the label of “forum_id” and the number for that forum id as the default value for the hidden value
    • I had an existing plugin that was mine. I added the code below to listen for Gravity Form events and then act on the submission.
    • WordPress will do the submission, save the post, then go to this function to act and create linkage between the form submission and a forum.
    // publish and associate the form
    
    function sboxr_application_submission( $entry, $form ) {
    	if (function_exists('bbp_update_forum')) {
    	    //getting post
        	$post = get_post( $entry['post_id'] );
    
    	    //changing post content
    	    foreach ($form['fields'] as $key => $values) {
        		if ($values['label'] == 'forum_id') {
        			$post->post_parent = $values['defaultValue'];
        			break;
        		}   
    	    }
    
    		$forum_meta = array(
    			'forum_id' => $post->post_parent,
    			'topic_id' => $post->ID,		
    			'comment_status' => 'open'
    		);
    		$post->comment_status = 'open';	
    		$post->post_status = 'publish';
    
    		bbp_update_forum(array('forum_id' => $post->post_parent));
    	    //updating post
    		wp_update_post($post);
    	
    		foreach ( $forum_meta as $meta_key => $meta_value ) {
    			update_post_meta( $post->ID, '_bbp_' . $meta_key, $meta_value );
    		}	
    	}
    }
    
    // Hook to make the gravity form submission to connect to forum post creation
    add_action( 'gform_after_submission_2', 'sboxr_application_submission', 10, 2 );
    
  • Making The Most of a Google Business Profile

    Small business owners need to pay attention to their Google Business  profile. Given the power and reach of Google, having a business profile is like getting a desk somewhere at Google where you get to influence how people find your business. Some people don’t even leave Google before they make a decision about your business. Done right, a Google Business Profile helps reach more potential customers by increasing online visibility.

    First, make sure that all of the information on your Google Business profile is accurate and up-to-date. This includes your business name, address, phone number, and hours of operation. You should also include a description of your business and the products or services you offer.

    Add high-quality photos of your business and products to your profile. These photos should be clear and well-lit, and showcase the best aspects of your business.

    Another important step is to encourage your customers to leave reviews on your Google Business profile. Positive reviews can help improve your online reputation and attract new customers. You can encourage customers to leave reviews by including a link to your Google Business profile on your website and social media pages, and by asking satisfied customers to leave a review.

    Be sure to monitor and respond to any reviews or questions that are left on your Google Business profile. This can help build trust with potential customers and show that you value their feedback. When people leave feedback (good or bad) respond and show that you care. They took the time to comment and you have to honour that in some way. At the very least, it makes them feel heard. It makes your business human– not some faceless corporation.

    By optimizing your Google Business profile, you can improve your online visibility and reach more potential customers in British Columbia. By accurately representing your business and encouraging positive reviews, you can build trust and attract more customers to your small business.

    Does this still sound hard? No problem: we would love to help. Contact Web321 and we can’t get you set-up on Google Business and take care of other tasks that keep a website in tip top shape.

  • Customer Feedback and B2B: It’s Still Essential

    How many times a day does the topic of online toxicity and cancel culture come up? That boils down to reputation management and how a comment can be an asymmetrical attack– an attack with no adequate defense. Some business have spiralled and crashed thanks to a spate of negative online reviews. This isn’t uncommon for the B2C market, but business-to-business is not immune. Customer feedback is essential for B2B businesses for a number of reasons:

    1. Product or service improvement: Customer feedback can provide valuable insights into what works well and what could be improved with a company’s products or services. This can help businesses identify areas for improvement and make necessary changes to better meet the needs of their customers.
    2. Increased customer satisfaction: By actively seeking and considering customer feedback, businesses can show their customers that they value their opinions and are committed to providing high-quality products and services. This can lead to increased customer satisfaction and loyalty.
    3. Enhanced reputation: Positive customer feedback can help improve a company’s reputation in the industry and attract new customers. On the other hand, negative feedback can highlight areas of concern that need to be addressed to maintain a good reputation.
    4. Increased sales: Satisfied customers are more likely to continue doing business with a company and recommend it to others. This can lead to increased sales and revenue for a business.
    5. Competitive advantage: By actively seeking and using customer feedback, businesses can gain a competitive advantage by continually improving their products and services and providing a better customer experience.

    Customer feedback is essential for B2B businesses because it can help improve products and services, increase customer satisfaction, enhance reputation, increase sales, and provide a competitive advantage. By actively seeking and considering customer feedback, businesses can gain valuable insights and make necessary changes to better meet the needs of their customers.

    Review Venues

    There are a number of places where people can leave reviews for a business, in addition to Google Business:

    1. Yelp: Yelp is a popular review website that allows users to rate and review local businesses. Many people use Yelp to find and learn about local businesses in their area.
    2. Facebook: Many businesses have a Facebook page where customers can leave reviews and ratings. These reviews are visible to other users who visit the business’s page.
    3. Trustpilot: Trustpilot is a review website that allows users to leave reviews for businesses in a variety of industries. These reviews are visible to other users who visit the business’s profile on the website.
    4. Consumer Reports: Consumer Reports is a well-known consumer advocacy organization that provides ratings and reviews for products and services. Many businesses are reviewed on Consumer Reports, and these reviews are visible to users who visit the organization’s website.
    5. Better Business Bureau: The Better Business Bureau (BBB) is a non-profit organization that aims to promote trust in the marketplace. Businesses can be reviewed on the BBB’s website by consumers who have had a positive or negative experience with the business.
    6. Glassdoor: Glassdoor is a website that allows employees to rate and review their workplaces. Many businesses are reviewed on Glassdoor, and these reviews are visible to users who visit the website.

    In addition to these review websites, customers can also leave reviews on a business’s own website, on social media platforms such as Twitter and Instagram. It’s critical to nurture good reviews. Ask for them when possible. In marketing copy, devote a little space to call for a review. With the above sites, build a profile first. These are high authority websites and it’s important to have a link there. Some of them will try to upsell you on expensive services. Usually, that’s not in your best interest.

    What About Bad Reviews?

    If you receive a bad online review of your B2B business, here are a few things you can do:

    1. Respond to the review: It is important to respond to negative reviews in a timely and professional manner. Thank the customer for their feedback and apologize for any issues they experienced. Offer to address their concerns and find a resolution. Give them a point a contact: an email address and a phone number. Talk with them. In some cases, the bad review is driven by keyboard courage and the direct approach may weaken their resolve. In some cases, the customer has bad news about your business and it’s important to hear that directly.
    2. Investigate the issue: If the review highlights a specific issue or concern, it is important to investigate the matter and determine if there was a problem with your product or service. This can help you identify any issues and take steps to prevent similar problems in the future.
    3. Make necessary improvements: If the review points to a problem with your product or service, take steps to address the issue and make necessary improvements. This can help prevent similar problems from occurring in the future and improve the customer experience.
    4. Monitor your online presence: It is important to regularly monitor your online presence and reviews to identify any issues or concerns that may arise. This can help you respond to negative reviews quickly and prevent similar problems from occurring in the future.
    5. Encourage positive reviews: In addition to addressing negative reviews, it is also important to encourage your satisfied customers to leave positive reviews. This can help balance out any negative reviews and improve your overall online reputation. Honestly: no one is perfect. A business with nothing but glowing reviews sounds a little fishy. Remember: pearls come from sand getting into an oyster.

    It is important to remember that negative reviews are a natural part of doing business, and it is not possible to please everyone all of the time. However, by responding to negative reviews and taking steps to address any issues or concerns, you can improve your online reputation and the overall customer experience. We have a number of clients who get reviews both good and bad. We coach them on how to turn around even a negative situation to make the best of it: as a learning experience; as a way to reach out and rebuild bridges; and a way to show the human side of your business online.

We’ll take good care of your website.

Copyright © 2025 – Web321 | All Right Reserved