How to add a sidebar to the bottom of the shop page in WooCommerce?

Step-1 :
  • Create Child Theme Like : twentyseventeen-child
  • Then create woocommerce in child theme
  • Then Goto wp-content\plugins\woocommerce\templates
  • Copy archive-product.php file
  • Past in your Child Theme “woocommerce” folder

archive-product.php code here

<?php
/**
 * The Template for displaying product archives, including the main shop page which is a post type archive
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see 	    https://docs.woocommerce.com/document/template-structure/
 * @author 		WooThemes
 * @package 	WooCommerce/Templates
 * @version     2.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

get_header( 'shop' ); ?>

	<?php
		/**
		 * woocommerce_before_main_content hook.
		 *
		 * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
		 * @hooked woocommerce_breadcrumb - 20
		 */
		do_action( 'woocommerce_before_main_content' );
	?>

		<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

			<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>

		<?php endif; ?>

		<?php
			/**
			 * woocommerce_archive_description hook.
			 *
			 * @hooked woocommerce_taxonomy_archive_description - 10
			 * @hooked woocommerce_product_archive_description - 10
			 */
			do_action( 'woocommerce_archive_description' );
		?>

		<?php if ( have_posts() ) : ?>

			<?php
				/**
				 * woocommerce_before_shop_loop hook.
				 *
				 * @hooked woocommerce_result_count - 20
				 * @hooked woocommerce_catalog_ordering - 30
				 */
				do_action( 'woocommerce_before_shop_loop' );
			?>

			<?php woocommerce_product_loop_start(); ?>

				<?php woocommerce_product_subcategories(); ?>

				<?php while ( have_posts() ) : the_post(); ?>

					<?php wc_get_template_part( 'content', 'product' ); ?>

				<?php endwhile; // end of the loop. ?>

			<?php woocommerce_product_loop_end(); ?>

			<?php
				/**
				 * woocommerce_after_shop_loop hook.
				 *
				 * @hooked woocommerce_pagination - 10
				 */
				do_action( 'woocommerce_after_shop_loop' );
			?>

		<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

			<?php wc_get_template( 'loop/no-products-found.php' ); ?>

		<?php endif; ?>

	<?php
		/**
		 * woocommerce_after_main_content hook.
		 *
		 * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
		 */
		do_action( 'woocommerce_after_main_content' );
	?>
    
	<?php
     echo '<p style="text-align:center;">You can add your sidebar code or short code here</p>';
    ?>
	<?php
		/**
		 * woocommerce_sidebar hook.
		 *
		 * @hooked woocommerce_get_sidebar - 10
		 */
		do_action( 'woocommerce_sidebar' );
	?>

<?php get_footer( 'shop' ); ?>

How to add Meta Description in pages with Divi Builder and Yoast Seo Plugin without use %%excerpt%% variable?

Just copy below Function and Add a Function in your Divi child theme function.php file.

<?php

add_filter( 'wpseo_metadesc', 'sm_divi_builder_content_wpseo_metadesc', 10, 1 );
function sm_divi_builder_content_wpseo_metadesc( $desc ) {
 // Get $post if you're inside a function
 global $post;
 $post_type = get_post_type( $post );
 if ($post_type == "page") {
  //get_meta_description
  $desc = get_post_meta($post->ID, '_yoast_wpseo_metadesc', true); 
  if($desc=="")
  {
   if ( has_excerpt( $post->ID ) ) {
    // This post has excerpt
    $desc = $post->post_excerpt;
   } else {
    // This post has no excerpt
    $desc = trim(strip_tags(preg_replace('/\[\/?et_pb.*?\]/', '', $post->post_content)));
    $desc = substr($desc,0,155); 
   }
  }
 }
 return $desc;
}

?>