HEX
Server: nginx/1.25.5
System: Linux hcss-ecs-9064 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64
User: www (1000)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/885213.cn/wp-content/plugins/simple-role-based-pricing/includes/admin/quick-edit.php
<?php
defined('ABSPATH') or die('No direct access!');

add_action('quick_edit_custom_box', 'simproba_quick_edit_fields', 10, 2);
function simproba_quick_edit_fields($column_name, $post_type) {
    if ($post_type !== 'product' || $column_name !== 'name') return;
    $role_pricing_settings = Simproba_Role_Pricing_Settings::get_instance();
    $roles = $role_pricing_settings->get_active_roles();
    simproba_debug_log('Champs d\'édition rapide affichés pour les rôles : ' . implode(', ', $roles));
    wp_nonce_field('simproba_quick_edit_nonce', 'simproba_quick_edit_nonce');
    ?>
    <fieldset class="inline-edit-col-right">
        <div class="inline-edit-col">
            <h4><?php esc_html_e('Role Based Pricing', 'simple-role-based-pricing'); ?></h4>
            <?php foreach ($roles as $role) : ?>
                <label>
                    <span class="title"><?php echo esc_html(ucfirst($role)); ?> <?php esc_html_e('Discount Type', 'simple-role-based-pricing'); ?></span>
                    <span class="input-text-wrap">
                        <select name="simproba_discount_type_<?php echo esc_attr($role); ?>">
                            <option value=""><?php esc_html_e('None', 'simple-role-based-pricing'); ?></option>
                            <option value="percentage"><?php esc_html_e('Percentage', 'simple-role-based-pricing'); ?></option>
                            <option value="fixed"><?php esc_html_e('Fixed Amount', 'simple-role-based-pricing'); ?></option>
                        </select>
                    </span>
                </label>
                <label>
                    <span class="title"><?php echo esc_html(ucfirst($role)); ?> <?php esc_html_e('Discount Value', 'simple-role-based-pricing'); ?></span>
                    <span class="input-text-wrap">
                        <input type="number" name="simproba_discount_value_<?php echo esc_attr($role); ?>" class="text" value="" step="0.01" min="0">
                    </span>
                </label>
            <?php endforeach; ?>
        </div>
    </fieldset>
    <?php
}

add_action('save_post', 'simproba_save_quick_edit', 10, 2);
function simproba_save_quick_edit($post_id, $post) {
    if ($post->post_type !== 'product' || defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_posts')) {
        simproba_debug_log('Erreur : Utilisateur non autorisé à modifier le produit ' . $post_id);
        return;
    }
    if (!isset($_POST['simproba_quick_edit_nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['simproba_quick_edit_nonce'])), 'simproba_quick_edit_nonce')) {
        simproba_debug_log('Erreur : Nonce invalide pour l\'édition rapide du produit ' . $post_id);
        return;
    }

    $role_pricing_settings = Simproba_Role_Pricing_Settings::get_instance();
    $roles = $role_pricing_settings->get_active_roles();

    foreach ($roles as $role) {
        if (isset($_POST["simproba_discount_type_$role"])) {
            $discount_type = sanitize_text_field($_POST["simproba_discount_type_$role"]);
            if (in_array($discount_type, ['', 'percentage', 'fixed'], true)) {
                update_post_meta($post_id, "simproba_discount_type_$role", $discount_type);
                simproba_debug_log("Mise à jour du type de remise pour le rôle $role sur le produit $post_id : $discount_type");
            }
        }
        if (isset($_POST["simproba_discount_value_$role"])) {
            $discount_value = floatval($_POST["simproba_discount_value_$role"]);
            if ($discount_value >= 0) {
                update_post_meta($post_id, "simproba_discount_value_$role", $discount_value);
                simproba_debug_log("Mise à jour de la valeur de remise pour le rôle $role sur le produit $post_id : $discount_value");
            }
        }
    }
}