Files
old-experiments/backend/wordpress/wp-content/plugins/woocommerce-jetpack/includes/settings/wcj-settings-price-by-user-role.php
2018-06-29 14:40:28 +02:00

196 lines
7.9 KiB
PHP
Executable File

<?php
/**
* Booster for WooCommerce - Settings - Price based on User Role
*
* @version 3.6.0
* @since 2.8.0
* @author Algoritmika Ltd.
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
$settings = array(
array(
'title' => __( 'Options', 'woocommerce-jetpack' ),
'type' => 'title',
'id' => 'wcj_price_by_user_role_options',
),
array(
'title' => __( 'Enable per Product Settings', 'woocommerce-jetpack' ),
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
'desc_tip' => __( 'When enabled, this will add new "Booster: Price based on User Role" meta box to each product\'s edit page.', 'woocommerce-jetpack' ),
'type' => 'checkbox',
'id' => 'wcj_price_by_user_role_per_product_enabled',
'default' => 'yes',
),
array(
'title' => __( 'Per Product Settings Type', 'woocommerce-jetpack' ),
'type' => 'select',
'id' => 'wcj_price_by_user_role_per_product_type',
'default' => 'fixed',
'options' => array(
'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
'multiplier' => __( 'Multiplier', 'woocommerce-jetpack' ),
),
),
array(
'title' => __( 'Show Roles on per Product Settings', 'woocommerce-jetpack' ),
'desc' => __( 'If per product settings are enabled, you can choose which roles to show on product\'s edit page. Leave blank to show all roles.', 'woocommerce-jetpack' ),
'type' => 'multiselect',
'id' => 'wcj_price_by_user_role_per_product_show_roles',
'default' => '',
'class' => 'chosen_select',
'options' => wcj_get_user_roles_options(),
),
array(
'title' => __( 'Shipping', 'woocommerce-jetpack' ),
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
'desc_tip' => __( 'When enabled, this will apply user role multipliers to shipping calculations.', 'woocommerce-jetpack' ),
'type' => 'checkbox',
'id' => 'wcj_price_by_user_role_shipping_enabled',
'default' => 'no',
),
array(
'title' => __( 'Disable Price based on User Role for Regular Price', 'woocommerce-jetpack' ),
'desc_tip' => __( 'Disable price by user role for regular price when using multipliers (global or per product).', 'woocommerce-jetpack' ),
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_disable_for_regular_price',
'default' => 'no',
'type' => 'checkbox',
),
array(
'title' => __( 'Search Engine Bots', 'woocommerce-jetpack' ),
'desc' => __( 'Disable Price based on User Role for Bots', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_for_bots_disabled',
'default' => 'no',
'type' => 'checkbox',
),
array(
'title' => __( 'Advanced: Price Filters Priority', 'woocommerce-jetpack' ),
'desc_tip' => __( 'Priority for all module\'s price filters. Set to zero to use default priority.' ),
'id' => 'wcj_price_by_user_role_advanced_price_hooks_priority',
'default' => 0,
'type' => 'number',
),
array(
'title' => __( 'Advanced: Price Changes', 'woocommerce-jetpack' ),
'desc' => __( 'Disable Price based on User Role for Products with "Price Changes"', 'woocommerce-jetpack' ),
'desc_tip' => __( 'Try enabling this checkbox, if you are having compatibility issues with other plugins.', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_check_for_product_changes_price',
'default' => 'no',
'type' => 'checkbox',
),
array(
'type' => 'sectionend',
'id' => 'wcj_price_by_user_role_options',
),
array(
'title' => __( 'Roles & Multipliers', 'woocommerce-jetpack' ),
'type' => 'title',
'desc' => sprintf( __( 'Custom roles can be added via "Add/Manage Custom Roles" tool in Booster\'s <a href="%s">General</a> module.', 'woocommerce-jetpack' ),
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=emails_and_misc&section=general' ) ),
'id' => 'wcj_price_by_user_role_multipliers_options',
),
array(
'title' => __( 'Disable Price based on User Role for Products on Sale', 'woocommerce-jetpack' ),
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_disable_for_products_on_sale',
'default' => 'no',
'type' => 'checkbox',
),
);
foreach ( wcj_get_user_roles() as $role_key => $role_data ) {
$settings = array_merge( $settings, array(
array(
'title' => $role_data['name'],
'id' => 'wcj_price_by_user_role_' . $role_key,
'default' => 1,
'type' => 'wcj_number_plus_checkbox_start',
'custom_attributes' => array( 'step' => '0.000001', 'min' => '0', ),
),
array(
'desc' => __( 'Make Empty Price', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_empty_price_' . $role_key,
'default' => 'no',
'type' => 'wcj_number_plus_checkbox_end',
),
) );
}
$settings = array_merge( $settings, array(
array(
'type' => 'sectionend',
'id' => 'wcj_price_by_user_role_multipliers_options',
),
) );
$taxonomies = array(
array(
'title' => __( 'Products Categories', 'woocommerce-jetpack' ),
'name' => 'categories',
'id' => 'product_cat',
'option_id' => 'cat',
),
array(
'title' => __( 'Products Tags', 'woocommerce-jetpack' ),
'name' => 'tags',
'id' => 'product_tag',
'option_id' => 'tag',
),
);
foreach ( $taxonomies as $taxonomy ) {
$product_taxonomies_options = array();
$product_taxonomies = get_terms( $taxonomy['id'], 'orderby=name&hide_empty=0' );
if ( ! empty( $product_taxonomies ) && ! is_wp_error( $product_taxonomies ) ){
foreach ( $product_taxonomies as $product_taxonomy ) {
$product_taxonomies_options[ $product_taxonomy->term_id ] = $product_taxonomy->name;
}
}
$settings = array_merge( $settings, array(
array(
'title' => sprintf( __( 'Price based on User Role by %s', 'woocommerce-jetpack' ), $taxonomy['title'] ),
'type' => 'title',
'id' => 'wcj_price_by_user_role_' . $taxonomy['name'] . '_options',
),
array(
'title' => $taxonomy['title'],
'desc_tip' => __( 'Save module\'s settings after changing this option to see new settings fields.', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_' . $taxonomy['name'],
'default' => '',
'type' => 'multiselect',
'class' => 'chosen_select',
'options' => $product_taxonomies_options,
'desc' => apply_filters( 'booster_message', '', 'desc' ),
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
),
) );
$_taxonomies = apply_filters( 'booster_option', '', get_option( 'wcj_price_by_user_role_' . $taxonomy['name'], '' ) );
if ( ! empty( $_taxonomies ) ) {
foreach ( $_taxonomies as $_taxonomy ) {
foreach ( wcj_get_user_roles() as $role_key => $role_data ) {
$settings = array_merge( $settings, array(
array(
'title' => $product_taxonomies_options[ $_taxonomy ] . ': ' . $role_data['name'],
'desc_tip' => __( 'Multiplier is ignored if set to negative number (e.g.: -1). Global multiplier will be used instead.', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_' . $taxonomy['option_id'] . '_' . $_taxonomy . '_' . $role_key,
'default' => -1,
'type' => 'wcj_number_plus_checkbox_start',
'custom_attributes' => array( 'step' => '0.000001', 'min' => -1 ),
),
array(
'desc' => __( 'Make Empty Price', 'woocommerce-jetpack' ),
'id' => 'wcj_price_by_user_role_' . $taxonomy['option_id'] . '_empty_price_' . $_taxonomy . '_' . $role_key,
'default' => 'no',
'type' => 'wcj_number_plus_checkbox_end',
),
) );
}
}
}
$settings = array_merge( $settings, array(
array(
'type' => 'sectionend',
'id' => 'wcj_price_by_user_role_' . $taxonomy['name'] . '_options',
),
) );
}
return $settings;