PHP 8.0.30
Preview: class-wc-embed.php Size: 4.24 KB
/home/certprox/template.certproxywizard.com/wp-content/plugins/woocommerce/includes/class-wc-embed.php

<?php
/**
 * WooCommerce product embed
 *
 * @version  2.4.11
 * @package  WooCommerce\Classes\Embed
 */

use Automattic\WooCommerce\Enums\ProductType;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Embed Class which handles any WooCommerce Products that are embedded on this site or another site.
 */
class WC_Embed {

	/**
	 * Init embed class.
	 *
	 * @since 2.4.11
	 */
	public static function init() {

		// Filter all of the content that's going to be embedded.
		add_filter( 'the_excerpt_embed', array( __CLASS__, 'the_excerpt' ), 10 );

		// Make sure no comments display. Doesn't make sense for products.
		add_action( 'embed_content_meta', array( __CLASS__, 'remove_comments_button' ), 5 );

		// In the comments place let's display the product rating.
		add_action( 'embed_content_meta', array( __CLASS__, 'get_ratings' ), 5 );

		// Add some basic styles.
		add_action( 'embed_head', array( __CLASS__, 'print_embed_styles' ) );
	}

	/**
	 * Remove comments button on product embeds.
	 *
	 * @since 2.6.0
	 */
	public static function remove_comments_button() {
		if ( self::is_embedded_product() ) {
			remove_action( 'embed_content_meta', 'print_embed_comments_button' );
		}
	}

	/**
	 * Check if this is an embedded product - to make sure we don't mess up regular posts.
	 *
	 * @since 2.4.11
	 * @return bool
	 */
	public static function is_embedded_product() {
		if ( function_exists( 'is_embed' ) && is_embed() && is_product() ) {
			return true;
		}
		return false;
	}

	/**
	 * Create the excerpt for embedded products - we want to add the buy button to it.
	 *
	 * @since 2.4.11
	 * @param string $excerpt Embed short description.
	 * @return string
	 */
	public static function the_excerpt( $excerpt ) {
		global $post;

		// Get product.
		$_product = wc_get_product( get_the_ID() );

		// Make sure we're only affecting embedded products.
		if ( self::is_embedded_product() ) {
			echo '<p><span class="wc-embed-price">' . $_product->get_price_html() . '</span></p>'; // WPCS: XSS ok.

			if ( ! empty( $post->post_excerpt ) ) {
				ob_start();
				woocommerce_template_single_excerpt();
				$excerpt = ob_get_clean();
			}

			// Add the button.
			$excerpt .= self::product_buttons();
		}
		return $excerpt;
	}

	/**
	 * Create the button to go to the product page for embedded products.
	 *
	 * @since 2.4.11
	 * @return string
	 */
	public static function product_buttons() {
		$_product = wc_get_product( get_the_ID() );
		$buttons  = array();
		$button   = '<a href="%s" class="wp-embed-more wc-embed-button">%s</a>';

		if ( $_product->is_type( ProductType::SIMPLE ) && $_product->is_purchasable() && $_product->is_in_stock() ) {
			$buttons[] = sprintf( $button, esc_url( add_query_arg( 'add-to-cart', get_the_ID(), wc_get_cart_url() ) ), esc_html__( 'Buy now', 'woocommerce' ) );
		}

		$buttons[] = sprintf( $button, get_the_permalink(), esc_html__( 'Read more', 'woocommerce' ) );

		return '<p>' . implode( ' ', $buttons ) . '</p>';
	}

	/**
	 * Prints the markup for the rating stars.
	 *
	 * @since 2.4.11
	 */
	public static function get_ratings() {
		// Make sure we're only affecting embedded products.
		if ( ! self::is_embedded_product() ) {
			return;
		}

		$_product = wc_get_product( get_the_ID() );

		if ( $_product && $_product->get_average_rating() > 0 ) {
			?>
			<div class="wc-embed-rating">
				<?php
					printf(
						/* translators: %s: average rating */
						esc_html__( 'Rated %s out of 5', 'woocommerce' ),
						esc_html( $_product->get_average_rating() )
					);
				?>
			</div>
			<?php
		}
	}

	/**
	 * Basic styling.
	 */
	public static function print_embed_styles() {
		if ( ! self::is_embedded_product() ) {
			return;
		}
		?>
		<style type="text/css">
			a.wc-embed-button {
				border-radius: 4px;
				border: 1px solid #ddd;
				box-shadow: 0px 1px 0 0px rgba(0, 0, 0, 0.05);
				display:inline-block;
				padding: .5em;
			}
			a.wc-embed-button:hover, a.wc-embed-button:focus {
				border: 1px solid #ccc;
				box-shadow: 0px 1px 0 0px rgba(0, 0, 0, 0.1);
				color: #999;
				text-decoration: none;
			}
			.wp-embed-excerpt p {
				margin: 0 0 1em;
			}
			.wc-embed-price {
				display: block;
				opacity: .75;
				font-weight: 700;
				margin-top: -.75em;
			}
			.wc-embed-rating {
				display: inline-block;
			}
		</style>
		<?php
	}
}

WC_Embed::init();

Directory Contents

Dirs: 28 × Files: 116

Name Size Perms Modified Actions
abstracts DIR
- drwxr-xr-x 2026-06-08 11:45:21
Edit Download
admin DIR
- drwxr-xr-x 2026-06-15 03:42:05
Edit Download
blocks DIR
- drwxr-xr-x 2026-06-08 11:45:23
Edit Download
cli DIR
- drwxr-xr-x 2026-06-08 11:45:25
Edit Download
- drwxr-xr-x 2026-06-08 11:45:25
Edit Download
- drwxr-xr-x 2026-06-08 11:45:26
Edit Download
emails DIR
- drwxr-xr-x 2026-06-08 11:45:26
Edit Download
export DIR
- drwxr-xr-x 2026-06-08 11:45:26
Edit Download
gateways DIR
- drwxr-xr-x 2026-06-08 11:45:26
Edit Download
import DIR
- drwxr-xr-x 2026-06-08 11:45:26
Edit Download
- drwxr-xr-x 2026-06-08 11:44:44
Edit Download
- drwxr-xr-x 2026-06-08 11:45:26
Edit Download
legacy DIR
- drwxr-xr-x 2026-06-08 11:45:27
Edit Download
libraries DIR
- drwxr-xr-x 2026-06-08 11:45:27
Edit Download
- drwxr-xr-x 2026-06-08 11:45:27
Edit Download
- drwxr-xr-x 2026-06-08 11:45:27
Edit Download
- drwxr-xr-x 2026-06-08 11:45:27
Edit Download
queue DIR
- drwxr-xr-x 2026-06-08 11:45:27
Edit Download
- drwxr-xr-x 2026-06-15 03:44:35
Edit Download
rest-api DIR
- drwxr-xr-x 2026-06-08 11:45:28
Edit Download
shipping DIR
- drwxr-xr-x 2026-06-08 11:44:44
Edit Download
- drwxr-xr-x 2026-06-08 11:45:28
Edit Download
- drwxr-xr-x 2026-06-08 11:45:28
Edit Download
tracks DIR
- drwxr-xr-x 2026-06-08 11:45:28
Edit Download
traits DIR
- drwxr-xr-x 2026-06-08 11:45:29
Edit Download
walkers DIR
- drwxr-xr-x 2026-06-08 11:45:29
Edit Download
- drwxr-xr-x 2026-06-08 11:45:29
Edit Download
widgets DIR
- drwxr-xr-x 2026-06-15 03:46:13
Edit Download
131.47 KB lrw-r--r-- 2026-06-08 11:45:23
Edit Download
12.69 KB lrw-r--r-- 2026-06-08 11:45:23
Edit Download
5.27 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
4.68 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
3.45 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
1.78 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
6.89 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
34.80 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
10.41 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
12.79 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
3.37 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
25.37 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
28.48 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
75.57 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
50.35 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
3.34 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
23.08 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
51.69 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
44.64 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
3.37 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
10.34 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
33.28 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
1.29 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
6.59 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
2.26 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
6.59 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
7.34 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
36.64 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
28.37 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
39.64 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
4.24 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
48.17 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
34.44 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
30.43 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
1.99 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
11.46 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
4.33 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
116.71 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
1.28 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
3.90 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
9.41 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
2.21 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
8.98 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
4.08 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
9.99 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
5.80 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
17.61 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
9.58 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
6.49 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
21.39 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
2.55 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
5.99 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
78.38 KB lrw-r--r-- 2026-06-08 11:45:24
Edit Download
14.37 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
6.24 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
39.09 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
33.16 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
1.79 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
13.61 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
14.69 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
17.22 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
7.87 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
13.18 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
4.98 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
4.59 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
6.81 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
2.27 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
2.70 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
23.76 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
20.18 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
37.01 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
4.00 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
7.74 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
15.44 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
5.05 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
21.55 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
276 B lrw-r--r-- 2026-06-08 11:45:25
Edit Download
24.57 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
9.34 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
13.08 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
5.00 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
13.03 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
18.82 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
24.78 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
39.87 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
20.42 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
51.50 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
5.79 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
30.17 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
63.37 KB lrw-r--r-- 2026-06-08 11:45:25
Edit Download
7.07 KB lrw-r--r-- 2026-07-26 21:31:28
Edit Download
14.15 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
21.91 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
4.17 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
20.81 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
15.53 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
79.00 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
5.56 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
39.78 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
49.90 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
2.43 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
8.49 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
43.99 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
5.03 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
5.97 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
9.99 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
69.18 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
13.93 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
17.43 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
142.51 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
12.84 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
24.63 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
107.05 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
36.73 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
5.91 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download
2.01 KB lrw-r--r-- 2026-06-08 11:45:29
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).