Merge pull request #23218 from woocommerce/add/suggestions-display-setting

[3.6] Add setting to control display of Marketplace Suggestions
This commit is contained in:
Timmy Crawford 2019-04-08 18:27:21 -07:00 committed by GitHub
commit 78aa67641b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 252 additions and 217 deletions

View File

@ -178,6 +178,11 @@ class WC_Marketplace_Suggestions {
return false;
}
// Suggestions may be disabled via a setting under Accounts & Privacy.
if ( 'no' === get_option( 'woocommerce_show_marketplace_suggestions', 'yes' ) ) {
return false;
}
// User can disabled all suggestions via filter.
return apply_filters( 'woocommerce_allow_marketplace_suggestions', true );
}

View File

@ -23,6 +23,7 @@ if ( ! defined( 'ABSPATH' ) ) {
<h4><?php esc_html_e( 'Enhance your products', 'woocommerce' ); ?></h4>
<p><?php esc_html_e( 'Extensions can add new functionality to your product pages that make your store stand out', 'woocommerce' ); ?></p>
</div>
<a href="https://woocommerce.com/product-category/woocommerce-extensions/?utm_source=editproduct&amp;utm_campaign=marketplacesuggestions&amp;utm_medium=product" target="blank" class="button"><?php esc_html_e( 'Browse the Marketplace', 'woocommerce' ); ?></a>
<a href="https://woocommerce.com/product-category/woocommerce-extensions/?utm_source=editproduct&amp;utm_campaign=marketplacesuggestions&amp;utm_medium=product" target="blank" class="button"><?php esc_html_e( 'Browse the Marketplace', 'woocommerce' ); ?></a><br />
<a href="<?php echo esc_url( admin_url( 'admin.php?page=wc-settings&tab=account#marketplace_suggestions-description' ) ); ?>"><?php esc_html_e( 'Manage suggestions', 'woocommerce' ); ?></a>
</div>
</div>

View File

@ -38,9 +38,7 @@ class WC_Settings_Accounts extends WC_Settings_Page {
$tracking_info_text = sprintf( '<a href="%s" target="_blank">%s</a>', 'https://woocommerce.com/usage-tracking', esc_html__( 'WooCommerce.com Usage Tracking Documentation', 'woocommerce' ) );
$settings = apply_filters(
'woocommerce_' . $this->id . '_settings',
array(
$account_settings = array(
array(
'title' => '',
'type' => 'title',
@ -255,7 +253,38 @@ class WC_Settings_Accounts extends WC_Settings_Page {
'type' => 'sectionend',
'id' => 'tracking_options',
),
)
);
// Only display Marketplace Suggestions opt-out if current user can actually see suggestions.
if ( current_user_can( 'install_plugins' ) ) {
$marketplace_suggestion_settings = array(
array(
'title' => esc_html__( 'Marketplace suggestions', 'woocommerce' ),
'type' => 'title',
'id' => 'marketplace_suggestions',
'desc' => __( 'We show contextual suggestions for official extensions that may be helpful to your store.', 'woocommerce' ),
),
array(
'title' => __( 'Show Suggestions', 'woocommerce' ),
'desc' => __( 'Display suggestions within WooCommerce', 'woocommerce' ),
'desc_tip' => esc_html__( 'Leave this box unchecked if you do not want to see suggested extensions.', 'woocommerce' ),
'id' => 'woocommerce_show_marketplace_suggestions',
'type' => 'checkbox',
'checkboxgroup' => 'start',
'default' => 'yes',
'autoload' => false,
),
array(
'type' => 'sectionend',
'id' => 'marketplace_suggestions',
),
);
$account_settings = array_merge( $account_settings, $marketplace_suggestion_settings );
}
$settings = apply_filters(
'woocommerce_' . $this->id . '_settings',
$account_settings
);
return apply_filters( 'woocommerce_get_settings_' . $this->id, $settings );