Find out which WordPress Database Options Belong to Plugins

This post will show you how to identify which WordPress plugin options in the wp_options table belong to a specific plugin. Normally developers will search in the wp_options table manually with phpMyAdmin or Adminer (WordPress plugin version) but this can often be very tedious as you have to paginate though sometimes hundreds of pages! When we have Linux command line tools available via SSH like WP-CLI and grep, we can efficiently identify which options in the WordPress database belong to a specific plugin and save precious time!

In this post I will show the techniques I normally use for finding these options so that I can correct any settings, back them up etc by matching the WordPress option_name to the plugin.

Please note that both of these approaches will require a terminal and SSH access of some kind to your WordPress installation.

I will assume WP-CLI and grep are already installed on the Linux system. Both Kinsta and Cloudways provide SSH access which have WP-CLI and grep available.

Find out which WordPress Plugin option_name Database Values

The first 2 techniques use my favorite tool: WP-CLI, after that there is a method using the Linux tool grep.

WP-CLI

I had a client on Codeable that had about 3 different social sharing plugins! I wanted to write a script using WP-CLI to batch delete all of these WordPress plugin values in the database that were no longer necessary. In this tutorial I will be trying to identify the addthis option_names in the wp_options table in the WordPress database.

In this section we will use WP-CLI 🙂

Using WP-CLI option Command

Using the option list command coupled with restricting the --field to option_names only, we can then use grep to only show us the option_names that contain the addthis string.

wp option list --field=option_name --allow-root | grep addthis

Here is the output showing all of the option_name values with the string addthis

addthis_settings
widget_addthis-widget
addthis_shared_settings
addthis_sharing_buttons_settings

If you want to see all of the option_values for each option_name containing addthis, you can use this command which will loop through each of them

wp option list --field=option_name --allow-root | grep addthis | xargs --replace=% wp option get % --allow-root

Note that thesea re serialized arrays

array (
  'addthis_social_widget_migrated_to' => 'addthis_sharing_buttons_settings',
)
array (
  1 =>
  array (
  ),
  '_multiwidget' => 1,
)
array (
  'addthis_anonymous_profile' => 'wp-c419021f34068dcd14db1185f724f76c',
  'addthis_asynchronous_loading' => true,
  'addthis_environment' => '',
  'addthis_per_post_enabled' => true,
  'addthis_plugin_controls' => 'AddThis',
  'addthis_profile' => 'ra-53ce33e04caa78a0',
  'addthis_rate_us' => '',
  'addthis_rate_us_timestamp' => 1500897630,
  'credential_validation_status' => '1',
  'wpfooter' => true,
  'addthis_twitter_template' => 'biznewsCOM',
  'addthis_bitly' => true,
  'addthis_share_json' => '',
  'addthis_layers_json' => '',
  'data_ga_property' => '',
  'addthis_language' => '',
  'atversion' => 300,
  'addthis_append_data' => true,
  'addthis_addressbar' => false,
  'addthis_508' => false,
  'addthis_config_json' => '',
)
array (
  'above' => 'disable',
  'below' => 'disable',
  'addthis_showonexcerpts' => false,
  'addthis_aftertitle' => false,
  'addthis_beforecomments' => false,
  'atversion_update_status' => '0',
  'above_chosen_list' => '',
  'below_chosen_list' => '',
  'addthis_wordpress_version' => '4.0',
  'addthis_plugin_version' => '5.3.4',
  'addthis_above_showon_home' => true,
  'addthis_below_showon_home' => true,
  'addthis_above_showon_pages' => true,
  'addthis_below_showon_pages' => true,
  'addthis_above_showon_categories' => true,
  'addthis_below_showon_categories' => true,
  'addthis_above_showon_archives' => true,
  'addthis_below_showon_archives' => true,
  'addthis_above_enabled' => false,
  'addthis_below_enabled' => false,
  'above_auto_services' => true,
  'above_custom_more' => '',
  'above_custom_preferred' => '',
  'above_custom_services' => '',
  'above_custom_size' => '',
  'above_custom_string' => '',
  'addthis_sidebar_count' => '5',
  'addthis_sidebar_enabled' => false,
  'addthis_sidebar_position' => 'left',
  'addthis_mobile_toolbar_enabled' => false,
  'addthis_mobile_toolbar_numPreferredServices' => '4',
  'addthis_mobile_toolbar_position' => 'bottom',
  'addthis_mobile_toolbar_counts' => true,
  'below_auto_services' => true,
  'below_custom_more' => '',
  'below_custom_preferred' => '',
  'below_custom_services' => '',
  'below_custom_size' => '',
  'below_custom_string' => '',
  'location' => 'below',
  'style' => 'fb_tw_p1_sc',
  'toolbox' => '',
  'addthis_above_showon_posts' => true,
  'addthis_above_showon_excerpts' => true,
  'addthis_below_showon_posts' => true,
  'addthis_below_showon_excerpts' => true,
  'addthis_sidebar_showon_home' => true,
  'addthis_sidebar_showon_posts' => true,
  'addthis_sidebar_showon_pages' => true,
  'addthis_sidebar_showon_archives' => true,
  'addthis_sidebar_showon_categories' => true,
  'addthis_mobile_toolbar_showon_home' => true,
  'addthis_mobile_toolbar_showon_posts' => true,
  'addthis_mobile_toolbar_showon_pages' => true,
  'addthis_mobile_toolbar_showon_archives' => true,
  'addthis_mobile_toolbar_showon_categories' => true,
)

If they are serialized arrays this will put them in the json format by employing the --format flag.

wp option list --field=option_name --allow-root | grep addthis | xargs --replace=% wp option get % --format=json --allow-root

Notice the output is now in json format

{"addthis_social_widget_migrated_to":"addthis_sharing_buttons_settings"}
{"1":[],"_multiwidget":1}
{"addthis_anonymous_profile":"wp-c419021f34068dcd14db1185f724f76c","addthis_asynchronous_loading":true,"addthis_environment":"","addthis_per_post_enabled":true,"addthis_plugin_controls":"AddThis","addthis_profile":"ra-53ce33e04caa78a0","addthis_rate_us":"","addthis_rate_us_timestamp":1500897630,"credential_validation_status":"1","wpfooter":true,"addthis_twitter_template":"biznewsCOM","addthis_bitly":true,"addthis_share_json":"","addthis_layers_json":"","data_ga_property":"","addthis_language":"","atversion":300,"addthis_append_data":true,"addthis_addressbar":false,"addthis_508":false,"addthis_config_json":""}
{"above":"disable","below":"disable","addthis_showonexcerpts":false,"addthis_aftertitle":false,"addthis_beforecomments":false,"atversion_update_status":"0","above_chosen_list":"","below_chosen_list":"","addthis_wordpress_version":"4.0","addthis_plugin_version":"5.3.4","addthis_above_showon_home":true,"addthis_below_showon_home":true,"addthis_above_showon_pages":true,"addthis_below_showon_pages":true,"addthis_above_showon_categories":true,"addthis_below_showon_categories":true,"addthis_above_showon_archives":true,"addthis_below_showon_archives":true,"addthis_above_enabled":false,"addthis_below_enabled":false,"above_auto_services":true,"above_custom_more":"","above_custom_preferred":"","above_custom_services":"","above_custom_size":"","above_custom_string":"","addthis_sidebar_count":"5","addthis_sidebar_enabled":false,"addthis_sidebar_position":"left","addthis_mobile_toolbar_enabled":false,"addthis_mobile_toolbar_numPreferredServices":"4","addthis_mobile_toolbar_position":"bottom","addthis_mobile_toolbar_counts":true,"below_auto_services":true,"below_custom_more":"","below_custom_preferred":"","below_custom_services":"","below_custom_size":"","below_custom_string":"","location":"below","style":"fb_tw_p1_sc","toolbox":"","addthis_above_showon_posts":true,"addthis_above_showon_excerpts":true,"addthis_below_showon_posts":true,"addthis_below_showon_excerpts":true,"addthis_sidebar_showon_home":true,"addthis_sidebar_showon_posts":true,"addthis_sidebar_showon_pages":true,"addthis_sidebar_showon_archives":true,"addthis_sidebar_showon_categories":true,"addthis_mobile_toolbar_showon_home":true,"addthis_mobile_toolbar_showon_posts":true,"addthis_mobile_toolbar_showon_pages":true,"addthis_mobile_toolbar_showon_archives":true,"addthis_mobile_toolbar_showon_categories":true}

If they are serialized you can save them all to separate files for inspection with this mini bash script loop

WPPATH=""
WPFLAGS="--path=${WPPATH} --skip-plugins --skip-themes --allow-root"

# path to store option values without trailing slash
OPTIONPATH=/tmp
OPTIONNAME="addthis"

OPTIONLIST=($(wp option list --field=option_name ${WPFLAGS} | grep ${OPTIONNAME}))

for OPTION in ${OPTIONLIST[@]};
do
    wp option get ${OPTION} --format=json ${WPFLAGS} > ${OPTIONPATH}/${OPTION}.txt
done

You will have a separate file for each option_name in the /tmp folder to peruse afterwards.

If you do not want them in json format then this should do the trick

WPPATH=""
WPFLAGS="--path=${WPPATH} --skip-plugins --skip-themes --allow-root"

# path to store option values without trailing slash
OPTIONPATH=/tmp
OPTIONNAME="addthis"

OPTIONLIST=($(wp option list --field=option_name ${WPFLAGS} | grep ${OPTIONNAME}))

for OPTION in ${OPTIONLIST[@]};
do
    wp option get ${OPTION} ${WPFLAGS} > ${OPTIONPATH}/${OPTION}.txt
done

If it is an option_value rather than an option_name you are looking for in the WordPress plugin, try this and replace addthis with the value you are searching for

wp option list --field=option_value --allow-root | grep addthis

herp

a:1:{s:33:"addthis_social_widget_migrated_to";s:32:"addthis_sharing_buttons_settings";}
a:21:{s:25:"addthis_anonymous_profile";s:35:"wp-c419021f34068dcd14db1185f724f76c";s:28:"addthis_asynchronous_loading";b:1;s:19:"addthis_environment";s:0:"";s:24:"addthis_per_post_enabled";b:1;s:23:"addthis_plugin_controls";s:7:"AddThis";s:15:"addthis_profile";s:19:"ra-53ce33e04caa78a0";s:15:"addthis_rate_us";s:0:"";s:25:"addthis_rate_us_timestamp";i:1500897630;s:28:"credential_validation_status";s:1:"1";s:8:"wpfooter";b:1;s:24:"addthis_twitter_template";s:10:"biznewsCOM";s:13:"addthis_bitly";b:1;s:18:"addthis_share_json";s:0:"";s:19:"addthis_layers_json";s:0:"";s:16:"data_ga_property";s:0:"";s:16:"addthis_language";s:0:"";s:9:"atversion";i:300;s:19:"addthis_append_data";b:1;s:18:"addthis_addressbar";b:0;s:11:"addthis_508";b:0;s:19:"addthis_config_json";s:0:"";}
a:56:{s:5:"above";s:7:"disable";s:5:"below";s:7:"disable";s:22:"addthis_showonexcerpts";b:0;s:18:"addthis_aftertitle";b:0;s:22:"addthis_beforecomments";b:0;s:23:"atversion_update_status";s:1:"0";s:17:"above_chosen_list";s:0:"";s:17:"below_chosen_list";s:0:"";s:25:"addthis_wordpress_version";s:3:"4.0";s:22:"addthis_plugin_version";s:5:"5.3.4";s:25:"addthis_above_showon_home";b:1;s:25:"addthis_below_showon_home";b:1;s:26:"addthis_above_showon_pages";b:1;s:26:"addthis_below_showon_pages";b:1;s:31:"addthis_above_showon_categories";b:1;s:31:"addthis_below_showon_categories";b:1;s:29:"addthis_above_showon_archives";b:1;s:29:"addthis_below_showon_archives";b:1;s:21:"addthis_above_enabled";b:0;s:21:"addthis_below_enabled";b:0;s:19:"above_auto_services";b:1;s:17:"above_custom_more";s:0:"";s:22:"above_custom_preferred";s:0:"";s:21:"above_custom_services";s:0:"";s:17:"above_custom_size";s:0:"";s:19:"above_custom_string";s:0:"";s:21:"addthis_sidebar_count";s:1:"5";s:23:"addthis_sidebar_enabled";b:0;s:24:"addthis_sidebar_position";s:4:"left";s:30:"addthis_mobile_toolbar_enabled";b:0;s:43:"addthis_mobile_toolbar_numPreferredServices";s:1:"4";s:31:"addthis_mobile_toolbar_position";s:6:"bottom";s:29:"addthis_mobile_toolbar_counts";b:1;s:19:"below_auto_services";b:1;s:17:"below_custom_more";s:0:"";s:22:"below_custom_preferred";s:0:"";s:21:"below_custom_services";s:0:"";s:17:"below_custom_size";s:0:"";s:19:"below_custom_string";s:0:"";s:8:"location";s:5:"below";s:5:"style";s:11:"fb_tw_p1_sc";s:7:"toolbox";s:0:"";s:26:"addthis_above_showon_posts";b:1;s:29:"addthis_above_showon_excerpts";b:1;s:26:"addthis_below_showon_posts";b:1;s:29:"addthis_below_showon_excerpts";b:1;s:27:"addthis_sidebar_showon_home";b:1;s:28:"addthis_sidebar_showon_posts";b:1;s:28:"addthis_sidebar_showon_pages";b:1;s:31:"addthis_sidebar_showon_archives";b:1;s:33:"addthis_sidebar_showon_categories";b:1;s:34:"addthis_mobile_toolbar_showon_home";b:1;s:35:"addthis_mobile_toolbar_showon_posts";b:1;s:35:"addthis_mobile_toolbar_showon_pages";b:1;s:38:"addthis_mobile_toolbar_showon_archives";b:1;s:40:"addthis_mobile_toolbar_showon_categories";b:1;}

Searching the Database with WP-CLI

This command will search the wp_options table only in both the option_name and option_value columns.

We are using the helpful wp db prefix command as well.

wp db search "addthis" $(wp db prefix --allow-root)options --allow-root

Here is the output

aue_options:option_name
251966:addthis_settings
aue_options:option_name
2868184:addthis_shared_settings
aue_options:option_name
2868185:addthis_sharing_buttons_settings
aue_options:option_name
257106:widget_addthis-widget
aue_options:option_value
251966:a:1:{s:33:"addthis_social_widget_migrated_to";s:32:"addthis_sharing_buttons_settings";}
aue_options:option_value
392010:link-to-facebook.php";s:5:"1.212";s:33:"addthis/addthis_social_widget.php";s:3:"4.0";s:43:"brok [...] /add-link-to-facebook.1.212.zip";}s:33:"addthis/addthis_social_widget.php";O:8:"stdClass":7:{s: [...] :7:{s:2:"id";s:4:"5710";s:4:"slug";s:7:"addthis";s:6:"plugin";s:33:"addthis/addthis_social_widget.php";s:11:"new_version";s [...] rl";s:38:"https://wordpress.org/plugins/addthis/";s:7:"package";s:57:"https://downloads [...] "https://downloads.wordpress.org/plugin/addthis.3.5.10.zip";}s:43:"broken-link-checker/
aue_options:option_value
2868184:a:21:{s:25:"addthis_anonymous_profile";s:35:"wp-c419021f340 [...] c419021f34068dcd14db1185f724f76c";s:28:"addthis_asynchronous_loading";b:1;s:19:"addthis_environment";s:0:"";s:24:"addthis_per_post_enabled";b:1;s:23:"addthis_plugin_controls";s:7:"AddThis";s:15:"addthis_profile";s:19:"ra-53ce33e04caa78a0";s:1 [...] ofile";s:19:"ra-53ce33e04caa78a0";s:15:"addthis_rate_us";s:0:"";s:25:"addthis_rate_us_timestamp";i:1500897630;s:28:"c [...] tatus";s:1:"1";s:8:"wpfooter";b:1;s:24:"addthis_twitter_template";s:10:"biznewsCOM";s:1 [...] itter_template";s:10:"biznewsCOM";s:13:"addthis_bitly";b:1;s:18:"addthis_share_json";s:0:"";s:19:"addthis_layers_json";s:0:"";s:16:"data_ga_prope [...] "";s:16:"data_ga_property";s:0:"";s:16:"addthis_language";s:0:"";s:9:"atversion";i:300; [...] age";s:0:"";s:9:"atversion";i:300;s:19:"addthis_append_data";b:1;s:18:"addthis_addressbar";b:0;s:11:"addthis_508";b:0;s:19:"addthis_config_json";s:0:"";}
aue_options:option_value
2868185:isable";s:5:"below";s:7:"disable";s:22:"addthis_showonexcerpts";b:0;s:18:"addthis_aftertitle";b:0;s:22:"addthis_beforecomments";b:0;s:23:"atversion_upd [...] ";s:17:"below_chosen_list";s:0:"";s:25:"addthis_wordpress_version";s:3:"4.0";s:22:"addthis_plugin_version";s:5:"5.3.4";s:25:"addthis_above_showon_home";b:1;s:25:"addthis_below_showon_home";b:1;s:26:"addthis_above_showon_pages";b:1;s:26:"addthis_below_showon_pages";b:1;s:31:"addthis_above_showon_categories";b:1;s:31:"addthis_below_showon_categories";b:1;s:29:"addthis_above_showon_archives";b:1;s:29:"addthis_below_showon_archives";b:1;s:21:"addthis_above_enabled";b:0;s:21:"addthis_below_enabled";b:0;s:19:"above_auto_ser [...] s:19:"above_custom_string";s:0:"";s:21:"addthis_sidebar_count";s:1:"5";s:23:"addthis_sidebar_enabled";b:0;s:24:"addthis_sidebar_position";s:4:"left";s:30:"addthis_mobile_toolbar_enabled";b:0;s:43:"addthis_mobile_toolbar_numPreferredServices";s: [...] bar_numPreferredServices";s:1:"4";s:31:"addthis_mobile_toolbar_position";s:6:"bottom";s [...] le_toolbar_position";s:6:"bottom";s:29:"addthis_mobile_toolbar_counts";b:1;s:19:"below_ [...] fb_tw_p1_sc";s:7:"toolbox";s:0:"";s:26:"addthis_above_showon_posts";b:1;s:29:"addthis_above_showon_excerpts";b:1;s:26:"addthis_below_showon_posts";b:1;s:29:"addthis_below_showon_excerpts";b:1;s:27:"addthis_sidebar_showon_home";b:1;s:28:"addthis_sidebar_showon_posts";b:1;s:28:"addthis_sidebar_showon_pages";b:1;s:31:"addthis_sidebar_showon_archives";b:1;s:33:"addthis_sidebar_showon_categories";b:1;s:34:"addthis_mobile_toolbar_showon_home";b:1;s:35:"addthis_mobile_toolbar_showon_posts";b:1;s:35:" [...] _mobile_toolbar_showon_posts";b:1;s:35:"addthis_mobile_toolbar_showon_pages";b:1;s:38:" [...] _mobile_toolbar_showon_pages";b:1;s:38:"addthis_mobile_toolbar_showon_archives";b:1;s:4 [...] bile_toolbar_showon_archives";b:1;s:40:"addthis_mobile_toolbar_showon_categories";b:1;}

If the wp_options table is empty, you can search all of the tables with the --all-tables flag (Source)

wp db search "addthis" --all-tables --allow-root

The above commmand can help catch WordPress plugin options that may live outside of the wp_options table.

Using Grep

grep is a fantastic tool for scanning files for a specific string extremely efficiently.

In this command we are searching for the update_option string in the addthis plugin folder’s files.

We can restrict the search to .php files only by using the --include flag with grep

grep -rHin update_option wp-content/plugins/addthis/ --include \*.php

The output is the filename that contains the string, the line number and then the context before and after the occurrence of that string

wp-content/plugins/addthis/backend/AddThisFollowButtonsFeature.php:206:                update_option('widget_' . $newWidgetsName, $newWidgetSettings);
wp-content/plugins/addthis/backend/AddThisFollowButtonsFeature.php:238:            update_option('sidebars_widgets', $sideBarConfigs);
wp-content/plugins/addthis/backend/AddThisSharingButtonsFeature.php:440:            update_option('widget_addthis_tool_by_class_name_widget', $outputWidgets);
wp-content/plugins/addthis/backend/AddThisFeature.php:721:                update_option($this->settingsVariableName, $this->configs);
wp-content/plugins/addthis/backend/AddThisRegistrationFeature.php:761:                update_option('smart_layer_profile', $profileId);
wp-content/plugins/addthis/backend/AddThisRegistrationFeature.php:765:                update_option('addthis_settings', $configs);

Hopefully this helps you track down and identify some of those option_names you are looking to backup, delete or modify on your WooCommerce store or WordPress site 🙂

Sources

WP-CLI db command
WP-CLI option command