From 3a1f0b07ee3f32986ff678e104715adb476b2a59 Mon Sep 17 00:00:00 2001 From: asus Date: Wed, 17 Apr 2024 16:47:14 +0200 Subject: [PATCH] added css and functions to make some acf fields read-only --- plugins/cipf_plugin/cipf_plugin.php | 2 + plugins/cipf_plugin/css/acf_fields.css | 17 ++++ plugins/cipf_plugin/css/fipf_user_profile.css | 7 +- .../php/_utils_acf_fields_disabled.php | 80 +++++++++++++++++++ .../cipf_plugin/php/_utils_display_css.php | 2 + plugins/cipf_plugin/php/admin_partner.php | 30 +++++++ plugins/cipf_plugin/php/admin_user_profil.php | 7 +- 7 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 plugins/cipf_plugin/css/acf_fields.css create mode 100644 plugins/cipf_plugin/php/_utils_acf_fields_disabled.php create mode 100644 plugins/cipf_plugin/php/admin_partner.php diff --git a/plugins/cipf_plugin/cipf_plugin.php b/plugins/cipf_plugin/cipf_plugin.php index ae67c6e..3820543 100644 --- a/plugins/cipf_plugin/cipf_plugin.php +++ b/plugins/cipf_plugin/cipf_plugin.php @@ -42,6 +42,7 @@ include_once(Plgntls::root_path() . 'php/partners_handle_offers.php'); // utils include_once(Plgntls::root_path() . 'php/_utils_acf_fields.php'); include_once(Plgntls::root_path() . 'php/_utils_acf_dates.php'); +include_once(Plgntls::root_path() . 'php/_utils_acf_fields_disabled.php'); include_once(Plgntls::root_path() . 'php/_utils_redirections.php'); include_once(Plgntls::root_path() . 'php/_utils_display_css.php'); include_once(Plgntls::root_path() . 'php/_utils_checks_roles.php'); @@ -53,6 +54,7 @@ include_once(Plgntls::root_path() . 'php/_actions_emails.php'); // admin include_once(Plgntls::root_path() . 'php/admin_hide_bar.php'); include_once(Plgntls::root_path() . 'php/admin_user_profil.php'); +include_once(Plgntls::root_path() . 'php/admin_partner.php'); include_once(Plgntls::root_path() . 'php/admin_menu.php'); diff --git a/plugins/cipf_plugin/css/acf_fields.css b/plugins/cipf_plugin/css/acf_fields.css new file mode 100644 index 0000000..679d53d --- /dev/null +++ b/plugins/cipf_plugin/css/acf_fields.css @@ -0,0 +1,17 @@ +.read_only_cipf { + .acf-input { + position: relative; + * { + cursor: default; + pointer-events: none; + } + > * { + color: #666; + background-color: #f0f0f1; + filter: grayscale(100%); + } + textarea { + pointer-events: auto; + } + } +} diff --git a/plugins/cipf_plugin/css/fipf_user_profile.css b/plugins/cipf_plugin/css/fipf_user_profile.css index e713033..2f36a30 100644 --- a/plugins/cipf_plugin/css/fipf_user_profile.css +++ b/plugins/cipf_plugin/css/fipf_user_profile.css @@ -7,13 +7,14 @@ /* -* hide all acf fields with the class 'hide-for-fipf' +* hide all acf fields with the class 'hide_for_fipfrole_cipf' +* also hide the title if class 'hide_group_for_fipfrole_cipf' * */ -form#your-profile h2:has(+ .form-table .hide-group-for-fipf) { +form#your-profile h2:has(+ .form-table .hide_group_for_fipfrole_cipf) { display: none; } -form#your-profile .hide-for-fipf { +form#your-profile .hide_for_fipfrole_cipf { display: none; } diff --git a/plugins/cipf_plugin/php/_utils_acf_fields_disabled.php b/plugins/cipf_plugin/php/_utils_acf_fields_disabled.php new file mode 100644 index 0000000..077d8b5 --- /dev/null +++ b/plugins/cipf_plugin/php/_utils_acf_fields_disabled.php @@ -0,0 +1,80 @@ + add the 'disabled' value to object after it is loaded +* +*/ +function disable_acf_field_CIPF($field) { + Plgntls::debug_infos(); + + if (!is_acf_field_disabled($field)) { + return $field; + } + + $field['disabled'] = 1; + //$field['readonly'] = 1; + + return $field; +} +add_filter('acf/load_field', 'disable_acf_field_CIPF'); + + + +/* +* if acf field has class to be disabled +* -> dont update the values +* -> should work for all acf fields +* 200 : ../../../wordpress_docker/volumes/wp_volume/wp-content/plugins/advanced-custom-fields/includes/acf-value-functions.php +* +*/ +function disable_all_acf_field_CIPF($null, $value, $post_id, $field) { + Plgntls::debug_infos(); + + if (!isset($_POST['acf'])) { + return $null; + } + if (!is_acf_field_disabled($field)) { + return $null; + } + + return false; +} +add_filter('acf/pre_update_value', 'disable_all_acf_field_CIPF', 10, 4); + + + +?> diff --git a/plugins/cipf_plugin/php/_utils_display_css.php b/plugins/cipf_plugin/php/_utils_display_css.php index 19cfeaf..e40d9f9 100644 --- a/plugins/cipf_plugin/php/_utils_display_css.php +++ b/plugins/cipf_plugin/php/_utils_display_css.php @@ -120,4 +120,6 @@ function display_states_css_CIPF($user_id = null) { + + ?> diff --git a/plugins/cipf_plugin/php/admin_partner.php b/plugins/cipf_plugin/php/admin_partner.php new file mode 100644 index 0000000..3d34994 --- /dev/null +++ b/plugins/cipf_plugin/php/admin_partner.php @@ -0,0 +1,30 @@ + diff --git a/plugins/cipf_plugin/php/admin_user_profil.php b/plugins/cipf_plugin/php/admin_user_profil.php index 72ada62..c309bb4 100644 --- a/plugins/cipf_plugin/php/admin_user_profil.php +++ b/plugins/cipf_plugin/php/admin_user_profil.php @@ -12,10 +12,9 @@ if (!defined('ABSPATH')) { - - /* -* load css for when fipf is weing user profil in admin +* load css for user profil admin page +* if fipf is weing user profil in admin, hide some fields * 278 : ../../../wordpress_docker/volumes/wp_volume/wp-admin/user-edit.php * */ @@ -27,7 +26,7 @@ function admin_user_profil_css_CIPF() { * for everyone viewing user profil * */ - Plgntls::add_to_front(array('css/user_profile.css')); + Plgntls::add_to_front(array('css/user_profile.css', 'css/acf_fields.css')); if (!current_user_can($role_fipf)) { return;