This is related to the updates made for _load_textdomain updates for WP 6.7.

Reproduction

iknowkungfu on localhost/staging : label_for_find_button

This changed on an app update as noted in settings history.

Read more: Settings Are Not Rendering Properly

iknowkungfu on localhost/staging : active_style_css (resolved)

See the Tracking Down Style Changes After Updates post.

See the Prod v Stage Settings Testing post.

Typo added in MySLP Dashboard 04/18/2025 ‘active_style’ vs. ‘active_style_css’ was fixed 2505.01.01 release.

2harvest on localhost : generate embed : address_placeholder (resolved)

  • the “address_placeholder” value is not rendering properly on generate embed.
    Resolved: the text strings for default values was not loading early enough

Research & Development


label_for_find_button changing on update

  • This is an Experience add on setting.
  • The default is ‘Find Locations’ as set via \SLP_Experience::init_options() (redundant?)
  • This is also set via \SLP_Text::init_strings()
  • This text is also changed via a WP hook/filter ‘slp_find_button_text
    • Invoked in \SLP_UI::get_find_button_text()
    • Processed in \SLP_Experience_UI::change_find_button_text()
      • Which replaces the text with SmartOptions->get_ValueOf( ‘label_for_find_button’ )
      • Hooked in \SLP_Experience_UI::add_hooks_and_filters()

Reset this via a manual update on the settings page back to ‘Find Locations’.
The following call stack did NOT fetch the proper version from the database:


address_placeholder is rendering as “address_placeholder” on the UI (resolved)

  • This is an Experience add on setting.

Debug Log entry

SLP_Text::get_text_string does not have an entry for [option_default][address_placeholder]
  • \SLP_Experience_Admin_Settings_Text::option_default() should be processing this.

\SLP_Experience_Admin_Settings_Text is invoked by \SLP_Experience_Admin::add_hooks_and_filters()

public function add_hooks_and_filters() {
	parent::add_hooks_and_filters();

	if ( ! empty( $_REQUEST['page'] ) ) {
		switch ( $_REQUEST['page'] ) {
			case 'slp_experience':
			SLP_Experience_Admin_Settings::get_instance();																																						                 SLP_Experience_Admin_Settings_Text::get_instance();
				break;

On Generate Embed… $_REQUEST[‘page’] = ‘myslp-dashboard’ , $_REQUEST[‘tab’] = ‘deployment’

  • SLP_AddOn_Options->attach_to_slp() calls…
    • SLP_SmartOptions->create_smart_options() calls…
      • SLP_SmartOptions->get_string_default() calls…
        • SLP_Text->get_text_string( [ ‘option_default’ , ‘address_placeholder’ ] );

Tracking SLP_Text->get_text_string() … there is a bug in here…

Due to the fact that the get_text_string() filters have not fired yet, which means the \SLP_Experience_Admin_Settings_Text filter on slp_get_text_string (from \SLP_Base_Text which this class extends) is not firing….

  • First of all the filter is firing too late in the algorithm for get_text_string() below.
  • Second, \SLP_Experience_Admin_Settings_Text() is not invoked when needed (when these options are created).
 public function get_text_string( $slug, $log_no_default = true ) {
...

	// Get the text for the specific slug
	if ( empty ( $this->text_strings[ $slug[0] ] ) || empty( $this->text_strings[ $slug[0] ][ $slug[1] ] ) ) {
		$no_default_string = $log_no_default;
		if ( $slug[0] === 'printf' ) {
			$default_string = '%s';
		} elseif ( $slug[0] === 'general' ) {
			$default_string = $slug[1];
		} else {
			$default_string = $this->get_text_string( $slug[1], false ); // *** this will fall back to looking up 'general'
		}
		$this->text_strings[ $slug[0] ][ $slug[1] ] = $default_string;
	} else {
		$no_default_string = false;
	}
...

UI Research

  • Rendered by : \SLP_Experience_UI::filter_ProcessSearchElement()
    • which calls…
return array(
'hard_coded_value' =>
$this->slplus->UI->createstring_DefaultSearchDiv_Address( $this->slplus->SmartOptions->address_placeholder )
);

$this->slplus->SmartOptions->address_placeholder is an object of SLP_Option

Resolved

Added SLP_Experience_Admin_Settings_Text::get_instance() to the start of \SLP_Experience_Options::create_options() which is invoked in the SLP_AddOn_Options->attach_to_slp() call stack.