PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.1
16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 All 504 releases
← All changes | 3rd-party/woocommerce.php +38 -27 12.2.3 → 16.3-a.1 View file →
@@ -4,8 +4,12 @@
4 4 *
5 5 * @package automattic/jetpack
6 6 */
7 7
8 +if ( ! defined( 'ABSPATH' ) ) {
9 + exit( 0 );
10 +}
11 +
8 12 add_action( 'woocommerce_init', 'jetpack_woocommerce_integration' );
9 13
10 14 /**
11 15 * Loads JP+WC integration.
@@ -22,8 +26,14 @@
22 26
23 27 add_action( 'woocommerce_share', 'jetpack_woocommerce_social_share_icons', 10 );
24 28
25 29 /**
30 + * Add product post type to Jetpack sitemap while skipping hidden products.
31 + */
32 + add_filter( 'jetpack_sitemap_post_types', 'jetpack_woocommerce_add_to_sitemap' );
33 + add_filter( 'jetpack_sitemap_skip_post', 'jetpack_woocommerce_skip_hidden_products_in_sitemap', 10, 2 );
34 +
35 + /**
26 36 * Wrap in function exists check since this requires WooCommerce 3.3+.
27 37 */
28 38 if ( function_exists( 'wc_get_default_products_per_row' ) ) {
29 39 add_filter( 'infinite_scroll_render_callbacks', 'jetpack_woocommerce_infinite_scroll_render_callback', 10 );
@@ -31,8 +41,35 @@
31 41 }
32 42 }
33 43
34 44 /**
45 + * Add product post type to sitemap if Woocommerce is present.
46 + *
47 + * @param array $post_types Array of post types included in sitemap.
48 + */
49 +function jetpack_woocommerce_add_to_sitemap( $post_types ) {
50 + $post_types[] = 'product';
51 +
52 + return $post_types;
53 +}
54 +
55 +/**
56 + * Skip hidden products when generating the sitemap.
57 + *
58 + * @param bool $skip Whether to skip the post.
59 + * @param WP_Post $post The post object.
60 + */
61 +function jetpack_woocommerce_skip_hidden_products_in_sitemap( $skip, $post ) {
62 + if ( $post !== null && $post->post_type === 'product' ) {
63 + $product = wc_get_product( $post->ID );
64 + if ( $product ) {
65 + $skip = ! $product->is_visible();
66 + }
67 + }
68 + return $skip;
69 +}
70 +
71 +/**
35 72 * Make sure the social sharing icons show up under the product's short description
36 73 */
37 74 function jetpack_woocommerce_social_share_icons() {
38 75 if ( function_exists( 'sharing_display' ) ) {
@@ -55,9 +92,9 @@
55 92
56 93 if ( is_cart() || is_checkout() || is_account_page() ) {
57 94 remove_filter( 'the_content', 'sharing_display', 19 );
58 95 if ( class_exists( 'Jetpack_Likes' ) ) {
59 - remove_filter( 'the_content', array( Jetpack_Likes::init(), 'post_likes' ), 30, 1 );
96 + remove_filter( 'the_content', array( Jetpack_Likes::init(), 'post_likes' ), 30 );
60 97 }
61 98 }
62 99 }
63 100 add_action( 'loop_start', 'jetpack_woocommerce_remove_share' );
@@ -100,30 +137,4 @@
100 137 display: none;
101 138 }';
102 139 wp_add_inline_style( 'woocommerce-layout', $custom_css );
103 140 }
104 -
105 -/**
106 - * Adds compat for WooCommerce and Lazy Loading.
107 - */
108 -function jetpack_woocommerce_lazy_images_compat() {
109 - wp_add_inline_script(
110 - 'wc-cart-fragments',
111 - "
112 - jQuery( 'body' ).bind( 'wc_fragments_refreshed', function() {
113 - var jetpackLazyImagesLoadEvent;
114 - try {
115 - jetpackLazyImagesLoadEvent = new Event( 'jetpack-lazy-images-load', {
116 - bubbles: true,
117 - cancelable: true
118 - } );
119 - } catch ( e ) {
120 - jetpackLazyImagesLoadEvent = document.createEvent( 'Event' )
121 - jetpackLazyImagesLoadEvent.initEvent( 'jetpack-lazy-images-load', true, true );
122 - }
123 - jQuery( 'body' ).get( 0 ).dispatchEvent( jetpackLazyImagesLoadEvent );
124 - } );
125 - "
126 - );
127 -}
128 -
129 -add_action( 'wp_enqueue_scripts', 'jetpack_woocommerce_lazy_images_compat', 11 );