4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Messages
  • #51534
    maro
    Participant
    Points: 33 pts
    Membre 2 étoiles

    Bonjour,

    J’ai ajouter des champs dans la fiche produit (coté Admin) à partir de la function.php de la thème.

    Je cherche comment lors de création de produit avec API je remplir aussi ces champs (postmeta)… il y a t il des ovveride à faire comme le cas de Web service de Prestashop ?

    merci d’avance

    Cordialement,

    depanagewp
    #51590
    Mathieu
    Participant
    Points: 1,315 pts
    Membre 2 étoiles

    vous parlez bien de l’API REST ?
    pour ajouter un champ dans les dialogues REST, vous pouvez utiliser cette fonction :

    register_rest_field()

    Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
    Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
    🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.

    depanagewp
    #51656
    maro
    Participant
    Points: 33 pts
    Membre 2 étoiles

    J’ai crée les champs en me basant sur ce lien :

    https://www.proy.info/woocommerce-admin-custom-product-data-tab/

     

    depanagewp
    #51713
    maro
    Participant
    Points: 33 pts
    Membre 2 étoiles

    also with this fuction … i can see my sutomer filed in api :

    add_action( 'rest_api_init', 'sb_register_post_meta' );
    function sb_register_post_meta() {
        register_rest_field( 'product', // any post type registered with API
            '_price', // this needs to match meta key
            array(
                'get_callback'    => 'sb_get_meta',
                'update_callback' => null,
                'schema'          => null,
            )
        );
    }
    function sb_get_meta( $object, $field_name, $request ) {
        return get_post_meta( $object[ 'id' ], $field_name, true );
    }
    depanagewp
4 sujets de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.