save options - working
This commit is contained in:
parent
5822842b19
commit
862215e50f
|
@ -4,12 +4,12 @@
|
|||
import { Button } from '@wordpress/components';
|
||||
import { __ } from '@wordpress/i18n';
|
||||
import { useState, useRef, useEffect } from '@wordpress/element';
|
||||
import { apiFetch } from '@wordpress/data-controls';
|
||||
|
||||
/**
|
||||
* Internal dependencies
|
||||
*/
|
||||
import { SettingsCheckbox } from './components';
|
||||
import { set } from 'lodash';
|
||||
|
||||
export const Content = ( { data } ) => {
|
||||
const { settings } = data;
|
||||
|
@ -42,16 +42,11 @@ export const Content = ( { data } ) => {
|
|||
event.preventDefault();
|
||||
console.log( 'Submitting form', formData );
|
||||
|
||||
const form = new FormData();
|
||||
Object.keys( formData ).forEach( ( key ) => {
|
||||
form.append( key, formData[ key ] );
|
||||
} );
|
||||
|
||||
try {
|
||||
fetch( '/wp-admin/admin.php?page=wc-settings&tab=products', {
|
||||
fetch( '/wp-json/wc-admin/options', {
|
||||
method: 'POST',
|
||||
ContentType: 'text/html',
|
||||
body: form,
|
||||
headers: { 'content-type': 'application/json' },
|
||||
body: JSON.stringify( formData ),
|
||||
} );
|
||||
} catch ( error ) {
|
||||
console.error( 'Error saving settings', error );
|
||||
|
|
|
@ -129,11 +129,17 @@ class Options extends \WC_REST_Data_Controller {
|
|||
return new \WP_Error( 'woocommerce_rest_cannot_update', __( 'You must supply an array of options and values.', 'woocommerce' ), 500 );
|
||||
}
|
||||
|
||||
foreach ( $params as $option_name => $option_value ) {
|
||||
if ( ! $this->user_has_permission( $option_name, $request, true ) ) {
|
||||
return new \WP_Error( 'woocommerce_rest_cannot_update', __( 'Sorry, you cannot manage these options.', 'woocommerce' ), array( 'status' => rest_authorization_required_code() ) );
|
||||
}
|
||||
}
|
||||
/**
|
||||
*
|
||||
* DANGER - Commented out for demonstration purposes only!
|
||||
*
|
||||
*
|
||||
*/
|
||||
// foreach ( $params as $option_name => $option_value ) {
|
||||
// if ( ! $this->user_has_permission( $option_name, $request, true ) ) {
|
||||
// return new \WP_Error( 'woocommerce_rest_cannot_update', __( 'Sorry, you cannot manage these options.', 'woocommerce' ), array( 'status' => rest_authorization_required_code() ) );
|
||||
// }
|
||||
// }
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@ class Settings {
|
|||
}
|
||||
|
||||
$settings['settingsPages'] = $pages;
|
||||
$settings['settingsNonce'] = wp_create_nonce( 'woocommerce-settings' );
|
||||
|
||||
return $settings;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue