您的语法看起来不错。我猜你的前两个变量是空的。
尝试对值进行硬编码,以查看这些值是否保存。
$tmp_mail_smtp = \'Test Mail SMTP\';
$tmp_mail_smtp_host = \'Test Mail SMTP Host\';
$tmp_mail_smtp_auth = \'Test Mail SMTP Auth\';
$my_update = $wpdb->update( $wpdb->prefix . \'my_settings\',
array( \'value\' => $tmp_mail_smtp,
\'value\' => $tmp_mail_smtp_host,
\'value\' => $tmp_mail_smtp_auth,
),
array( \'name\' => \'mail-smtp\',
\'name\' => \'mail-smtp-host\',
\'name\' => \'mail-smtp-auth\',
)
);
Update #1
由于上述方法不适用于您,请删除
$wpdb->update
分别编写代码并尝试更新每个选项,看看是否有效。
if ( $settings_message == \'0\' ) {
update_option( \'role\', $tmp_role );
update_option( \'mail-smtp\', $tmp_mail_smtp );
update_option( \'mail-smtp-host\', $tmp_mail_smtp_host );
update_option( \'mail-smtp-auth\', $tmp_mail_smtp_auth );
}
另外,由于这是一个wp管理页面,我会阅读更多关于
Settings API 它提供了一种更结构化的方式来添加/管理选项页面。