首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Wordpress插件保存数据有问题

用Wordpress插件保存数据有问题
EN

Stack Overflow用户
提问于 2018-12-16 03:33:21
回答 1查看 97关注 0票数 0

我使用Woo估计的发货日期插件在我的产品页面中添加一个自定义文本(字段)。问题是:

示例:如果我在该自定义字段中使用此文本:"In stock“,然后保存更改,则插件在产品页中显示"In stock”.--如果我回去编辑产品页面上的其他内容,插件将恢复默认语句“估计交付日期”,如果我保存更改而不再次修改该句子,则“估计交付日期”显示在产品页面中,而不是新句子。这有点像一个恼人的循环,保存更改后总是返回默认文本,如果我不看那个字段,我的自定义文本就会消失。

下面是插件代码:

代码语言:javascript
复制
<?php 
/**
* No cheating please
*/
if ( ! defined( 'WPINC' ) ) exit;

/**
* WCESD_Product_Settings Class
*/
class WCESD_Product_Settings {
/**
 * Hold the instance
 * 
 * @var string
 */
private static $instance;

use helperMethods;

/**
 * Constructor method
 *
 * @return void
 */
public function __construct() {
    if ( ! $this->enabled() ) {
        return;
    }

    $this->init_hooks();
}

/**
 * Init all the hooks
 * 
 * @return void
 */
protected function init_hooks() {
    add_action( 'woocommerce_product_options_shipping', array( $this, 'wc_esd_add_estimated_shipping_date' ) );
    add_action( 'woocommerce_process_product_meta', array( $this, 'wc_esd_save_shipping_date') );       
}

/**
 * Add wcesd form
 * 
 * @return void
 */
public function wc_esd_add_estimated_shipping_date() {
    woocommerce_wp_checkbox( array(
        'id'            => 'wc_esd_date_enable',
        'label'         => __( 'Habilitar fecha estimada entrega', 'wcesd' ),
        'description'   => __( 'Enable or Disable woocommerce estimated shipping date', 'wcesd' ),
        'desc_tip'      => true,
    ) );
    woocommerce_wp_text_input( array(
        'id'            => 'wc_esd_date',
        'label'         => __( 'Fecha estimada en días', 'wcesd' ),
        'description'   => __( 'Días del posible arribo del producto', 'wcesd' ),
        'desc_tip'      => true,
        'type'          => 'number',
        'placeholder'   => 5,
        'value'         => 5,
    ) );
    woocommerce_wp_text_input( array(
        'id'            => 'wc_esd_date_message',
        'label'         => __( 'Frase', 'wcesd' ),
        'description'   => __( 'Agregue su mensaje', 'wcesd' ),
        'desc_tip'      => true,
        'placeholder'   => 'Estimated Delivery Date',
        'value'         => 'Estimated Delivery Date',
    ) );

    do_action( 'wc_esd_add_estimated_shipping_date' );
}

/**
 * Save wcesd form data
 * 
 * @param  int $product_id
 * 
 * @return void
 */
public function wc_esd_save_shipping_date( $product_id ) {
    if ( ! is_admin() || get_post_type() !== 'product' ) {
        return;
    }

    $wc_esd_date_enable  = isset( $_POST['wc_esd_date_enable'] ) ? sanitize_text_field( $_POST['wc_esd_date_enable'] ) : '';
    $wc_esd_date         = isset( $_POST['wc_esd_date'] ) ? sanitize_text_field( $_POST['wc_esd_date'] ) : '';
    $wc_esd_date_message = isset( $_POST['wc_esd_date_message'] ) ? sanitize_text_field( $_POST['wc_esd_date_message'] ) : '';

    update_post_meta( $product_id, 'wc_esd_date_enable', $wc_esd_date_enable );
    update_post_meta( $product_id, 'wc_esd_date', $wc_esd_date );
    update_post_meta( $product_id, 'wc_esd_date_message', $wc_esd_date_message );

    do_action( 'wc_esd_save_shipping_date', $product_id );
}

/**
 * Get instance
 * 
 * @return object
 */
public static function init() {
    if ( null === self::$instance ) {
        self::$instance = new self();
    }

    return self::$instance;
}

/**
 * Disable cloning this class
 * 
 * @return void
 */
private function __clone() {
    //
}

private function __wakeup() {
    //
}
}

WCESD_Product_Settings::init();

知道怎么解决这个问题吗?谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-16 07:54:51

请删除“值”字段

代码语言:javascript
复制
woocommerce_wp_text_input( array(
    'id'            => 'wc_esd_date_message',
    'label'         => __( 'Frase', 'wcesd' ),
    'description'   => __( 'Agregue su mensaje', 'wcesd' ),
    'desc_tip'      => true,
    'placeholder'   => 'Estimated Delivery Date',
    /*'value'         => 'Estimated Delivery Date',*/
) );

那就应该管用了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53799208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档