duandongjin5647 2019-05-16 11:13
浏览 90

尝试为givewp插件开发自定义设置,保存按钮不起作用

So I'm tasked to develop a custom section within the Give plugin settings that lets the admin of the website pair two value together and store them in the database , I've tried looking through multiple hooks and API but to no avail , Can you please help me ?

I've tried using Give Hook Helper and such to maybe get the right hook to use but I'm not sure.

<?php
/**
 * Plugin Name:  Payment Settings Config
 * Plugin URI: https://plant-for-the-planet.org/
 * Description: Allow the configuration of multiple payment accounts
 * Version: 1.0
 * Author: Kareem Shamayleh
 * Author URI:
 **/

function payment_config_advanced_settings( $settings ) {

    $current_section = give_get_current_setting_section();

    switch ( $current_section ) {
        case 'stripe':
            $settings = array(
                array(
                    'id'   => 'payment_advanced_settings',
                    'type' => 'title',
                ),
                array(
                    'name'    => __( 'Country', '' ),
                    'desc'    => __( 'Choose country to pair with Account Key', '_country' ),
                    'id'      => __('planet_country' , '_Country'),
                    'type'    => 'select',
                    'default' => 'disabled',
                ),
                array(
                    'name' => __( 'Account Key', '' ),
                    'desc' => __( 'Write down an account key to pair with a Country', '_acctkey' ),
                    'id'   => __('planet_acctKey' , '_acctkey'),
                    'type' => 'text',
                )
            );
    }

    return $settings;
}
  add_filter( 'give_get_settings_advanced', 'payment_config_advanced_settings', 10, 1 );

function plant_config_advanced_settings_display($field_options){

   ?> <form method="post"><label for=\"country\">Country</label>

            <select id="<?php echo esc_attr( $field_options['id'] ) . '_Country'; ?>" name=\"country\" class=\"form-control\">
                <option value=\"\" selected='selected'></option>
                <option value=\"Afghanistan\">Afghanistan</option>
                <option value=\"Åland_Islands\">Åland Islands</option>
                <option value=\"Albania\">Albania</option>
                <option value=\"Algeria\">Algeria</option>
                <option value=\"American_Samoa\">American Samoa</option>
                <option value=\"Andorra\">Andorra</option>
                <option value=\"Angola\">Angola</option>
                <option value=\"Anguilla\">Anguilla</option>
                <option value=\"Antarctica\">Antarctica</option>
                <option value=\"Antigua_and_Barbuda\">Antigua and Barbuda</option>
                <option value=\"Argentina\">Argentina</option>
                <option value=\"Armenia\">Armenia</option>
                <option value=\"Aruba\">Aruba</option>
                <option value=\"Australia\">Australia</option>
                <option value=\"Austria\">Austria</option>
                <option value=\"Azerbaijan\">Azerbaijan</option>
                <option value=\"Bahamas\">Bahamas</option>
                <option value=\"Bahrain\">Bahrain</option>
                <option value=\"Bangladesh\">Bangladesh</option>
                <option value=\"Barbados\">Barbados</option>
                <option value=\"Belarus\">Belarus</option>
                <option value=\"Belgium\">Belgium</option>
                <option value=\"Belize\">Belize</option>
                <option value=\"Benin\">Benin</option>
                <option value=\"Bermuda\">Bermuda</option>
                <option value=\"Bhutan\">Bhutan</option>
                <option value=\"Bolivia\">Bolivia</option>
                <option value=\"Bosnia_and_Herzegovina\">Bosnia and Herzegovina</option>
                <option value=\"Botswana\">Botswana</option>
                <option value=\"Bouvet_Island\">Bouvet Island</option>
                <option value=\"Brazil\">Brazil</option>
                <option value=\"British_Indian_Ocean_Territory\">British Indian Ocean Territory</option>
                <option value=\"BruneiDarussalam\">Brunei Darussalam</option>
                <option value=\"Bulgaria\">Bulgaria</option>
                <option value=\"BurkinaFaso\">Burkina Faso</option>
                <option value=\"Burundi\">Burundi</option>
                <option value=\"Cambodia\">Cambodia</option>
                <option value=\"Cameroon\">Cameroon</option>
                <option value=\"Canada\">Canada</option>
                <option value=\"CapeVerde\">Cape Verde</option>
                <option value=\"CaymanIslands\">Cayman Islands</option>
                <option value=\"CentralAfricanRepublic\">Central African Republic</option>
                <option value=\"Chad\">Chad</option>
                <option value=\"Chile\">Chile</option>
                <option value=\"China\">China</option>
                <option value=\"ChristmasIsland\">Christmas Island</option>
                <option value=\"Cocos(Keeling)Islands\">Cocos (Keeling) Islands</option>
                <option value=\"Colombia\">Colombia</option>
                <option value=\"Comoros\">Comoros</option>
                <option value=\"Congo\">Congo</option>
                <option value=\"Congo,TheDemocraticRepublicofThe\">Congo, The Democratic Republic of The</option>
                <option value=\"CookIslands\">Cook Islands</option>
                <option value=\"CostaRica\">Costa Rica</option>
                <option value=\"CoteD'ivoire\">Cote D'ivoire</option>
                <option value=\"Croatia\">Croatia</option>
                <option value=\"Cuba\">Cuba</option>
                <option value=\"Cyprus\">Cyprus</option>
                <option value=\"CzechRepublic\">Czech Republic</option>
                <option value=\"Denmark\">Denmark</option>
                <option value=\"Djibouti\">Djibouti</option>
                <option value=\"Dominica\">Dominica</option>
                <option value=\"DominicanRepublic\">Dominican Republic</option>
                <option value=\"Ecuador\">Ecuador</option>
                <option value=\"Egypt\">Egypt</option>
                <option value=\"ElSalvador\">El Salvador</option>
                <option value=\"EquatorialGuinea\">Equatorial Guinea</option>
                <option value=\"Eritrea\">Eritrea</option>
                <option value=\"Estonia\">Estonia</option>
                <option value=\"Ethiopia\">Ethiopia</option>
                <option value=\"FalklandIslands(Malvinas)\">Falkland Islands (Malvinas)</option>
                <option value=\"FaroeIslands\">Faroe Islands</option>
                <option value=\"Fiji\">Fiji</option>
                <option value=\"Finland\">Finland</option>
                <option value=\"France\">France</option>
                <option value=\"FrenchGuiana\">French Guiana</option>
                <option value=\"FrenchPolynesia\">French Polynesia</option>
                <option value=\"FrenchSouthernTerritories\">French Southern Territories</option>
                <option value=\"Gabon\">Gabon</option>
                <option value=\"Gambia\">Gambia</option>
                <option value=\"Georgia\">Georgia</option>
                <option value=\"Germany\">Germany</option>
                <option value=\"Ghana\">Ghana</option>
                <option value=\"Gibraltar\">Gibraltar</option>
                <option value=\"Greece\">Greece</option>
                <option value=\"Greenland\">Greenland</option>
                <option value=\"Grenada\">Grenada</option>
                <option value=\"Guadeloupe\">Guadeloupe</option>
                <option value=\"Guam\">Guam</option>
                <option value=\"Guatemala\">Guatemala</option>
                <option value=\"Guernsey\">Guernsey</option>
                <option value=\"Guinea\">Guinea</option>
                <option value=\"Guinea-bissau\">Guinea-bissau</option>
                <option value=\"Guyana\">Guyana</option>
                <option value=\"Haiti\">Haiti</option>
                <option value=\"HeardIslandandMcdonaldIslands\">Heard Island and Mcdonald Islands</option>
                <option value=\"HolySee(VaticanCityState)\">Holy See (Vatican City State)</option>
                <option value=\"Honduras\">Honduras</option>
                <option value=\"HongKong\">Hong Kong</option>
                <option value=\"Hungary\">Hungary</option>
                <option value=\"Iceland\">Iceland</option>
                <option value=\"India\">India</option>
                <option value=\"Indonesia\">Indonesia</option>
                <option value=\"Iran,IslamicRepublicof\">Iran, Islamic Republic of</option>
                <option value=\"Iraq\">Iraq</option>
                <option value=\"Ireland\">Ireland</option>
                <option value=\"IsleofMan\">Isle of Man</option>
                <option value=\"Israel\">Israel</option>
                <option value=\"Italy\">Italy</option>
                <option value=\"Jamaica\">Jamaica</option>
                <option value=\"Japan\">Japan</option>
                <option value=\"Jersey\">Jersey</option>
                <option value=\"Jordan\">Jordan</option>
                <option value=\"Kazakhstan\">Kazakhstan</option>
                <option value=\"Kenya\">Kenya</option>
                <option value=\"Kiribati\">Kiribati</option>
                <option value=\"Korea,DemocraticPeople'sRepublicof\">Korea, Democratic People's Republic of</option>
                <option value=\"Korea,Republicof\">Korea, Republic of</option>
                <option value=\"Kuwait\">Kuwait</option>
                <option value=\"Kyrgyzstan\">Kyrgyzstan</option>
                <option value=\"LaoPeople'sDemocraticRepublic\">Lao People's Democratic Republic</option>
                <option value=\"Latvia\">Latvia</option>
                <option value=\"Lebanon\">Lebanon</option>
                <option value=\"Lesotho\">Lesotho</option>
                <option value=\"Liberia\">Liberia</option>
                <option value=\"LibyanArabJamahiriya\">Libyan Arab Jamahiriya</option>
                <option value=\"Liechtenstein\">Liechtenstein</option>
                <option value=\"Lithuania\">Lithuania</option>
                <option value=\"Luxembourg\">Luxembourg</option>
                <option value=\"Macao\">Macao</option>
                <option value=\"Macedonia,TheFormerYugoslavRepublicof\">Macedonia, The Former Yugoslav Republic of</option>
                <option value=\"Madagascar\">Madagascar</option>
                <option value=\"Malawi\">Malawi</option>
                <option value=\"Malaysia\">Malaysia</option>
                <option value=\"Maldives\">Maldives</option>
                <option value=\"Mali\">Mali</option>
                <option value=\"Malta\">Malta</option>
                <option value=\"MarshallIslands\">Marshall Islands</option>
                <option value=\"Martinique\">Martinique</option>
                <option value=\"Mauritania\">Mauritania</option>
                <option value=\"Mauritius\">Mauritius</option>
                <option value=\"Mayotte\">Mayotte</option>
                <option value=\"Mexico\">Mexico</option>
                <option value=\"Micronesia,FederatedStatesof\">Micronesia, Federated States of</option>
                <option value=\"Moldova,Republicof\">Moldova, Republic of</option>
                <option value=\"Monaco\">Monaco</option>
                <option value=\"Mongolia\">Mongolia</option>
                <option value=\"Montenegro\">Montenegro</option>
                <option value=\"Montserrat\">Montserrat</option>
                <option value=\"Morocco\">Morocco</option>
                <option value=\"Mozambique\">Mozambique</option>
                <option value=\"Myanmar\">Myanmar</option>
                <option value=\"Namibia\">Namibia</option>
                <option value=\"Nauru\">Nauru</option>
                <option value=\"Nepal\">Nepal</option>
                <option value=\"Netherlands\">Netherlands</option>
                <option value=\"NetherlandsAntilles\">Netherlands Antilles</option>
                <option value=\"NewCaledonia\">New Caledonia</option>
                <option value=\"NewZealand\">New Zealand</option>
                <option value=\"Nicaragua\">Nicaragua</option>
                <option value=\"Niger\">Niger</option>
                <option value=\"Nigeria\">Nigeria</option>
                <option value=\"Niue\">Niue</option>
                <option value=\"NorfolkIsland\">Norfolk Island</option>
                <option value=\"NorthernMarianaIslands\">Northern Mariana Islands</option>
                <option value=\"Norway\">Norway</option>
                <option value=\"Oman\">Oman</option>
                <option value=\"Pakistan\">Pakistan</option>
                <option value=\"Palau\">Palau</option>
                <option value=\"PalestinianTerritory,Occupied\">Palestinian Territory, Occupied</option>
                <option value=\"Panama\">Panama</option>
                <option value=\"PapuaNewGuinea\">Papua New Guinea</option>
                <option value=\"Paraguay\">Paraguay</option>
                <option value=\"Peru\">Peru</option>
                <option value=\"Philippines\">Philippines</option>
                <option value=\"Pitcairn\">Pitcairn</option>
                <option value=\"Poland\">Poland</option>
                <option value=\"Portugal\">Portugal</option>
                <option value=\"PuertoRico\">Puerto Rico</option>
                <option value=\"Qatar\">Qatar</option>
                <option value=\"Reunion\">Reunion</option>
                <option value=\"Romania\">Romania</option>
                <option value=\"RussianFederation\">Russian Federation</option>
                <option value=\"Rwanda\">Rwanda</option>
                <option value=\"SaintHelena\">Saint Helena</option>
                <option value=\"SaintKittsandNevis\">Saint Kitts and Nevis</option>
                <option value=\"SaintLucia\">Saint Lucia</option>
                <option value=\"SaintPierreandMiquelon\">Saint Pierre and Miquelon</option>
                <option value=\"SaintVincentandTheGrenadines\">Saint Vincent and The Grenadines</option>
                <option value=\"Samoa\">Samoa</option>
                <option value=\"SanMarino\">San Marino</option>
                <option value=\"SaoTomeandPrincipe\">Sao Tome and Principe</option>
                <option value=\"SaudiArabia\">Saudi Arabia</option>
                <option value=\"Senegal\">Senegal</option>
                <option value=\"Serbia\">Serbia</option>
                <option value=\"Seychelles\">Seychelles</option>
                <option value=\"SierraLeone\">Sierra Leone</option>
                <option value=\"Singapore\">Singapore</option>
                <option value=\"Slovakia\">Slovakia</option>
                <option value=\"Slovenia\">Slovenia</option>
                <option value=\"SolomonIslands\">Solomon Islands</option>
                <option value=\"Somalia\">Somalia</option>
                <option value=\"SouthAfrica\">South Africa</option>
                <option value=\"SouthGeorgiaandTheSouthSandwichIslands\">South Georgia and The South Sandwich Islands</option>
                <option value=\"Spain\">Spain</option>
                <option value=\"SriLanka\">Sri Lanka</option>
                <option value=\"Sudan\">Sudan</option>
                <option value=\"Suriname\">Suriname</option>
                <option value=\"SvalbardandJanMayen\">Svalbard and Jan Mayen</option>
                <option value=\"Swaziland\">Swaziland</option>
                <option value=\"Sweden\">Sweden</option>
                <option value=\"Switzerland\">Switzerland</option>
                <option value=\"SyrianArabRepublic\">Syrian Arab Republic</option>
                <option value=\"Taiwan,Provinceofchina\">Taiwan, Province of China</option>
                <option value=\"Tajikistan\">Tajikistan</option>
                <option value=\"Tanzania,UnitedRepublicof\">Tanzania, United Republic of</option>
                <option value=\"Thailand\">Thailand</option>
                <option value=\"Timor-leste\">Timor-leste</option>
                <option value=\"Togo\">Togo</option>
                <option value=\"Tokelau\">Tokelau</option>
                <option value=\"Tonga\">Tonga</option>
                <option value=\"TrinidadandTobago\">Trinidad and Tobago</option>
                <option value=\"Tunisia\">Tunisia</option>
                <option value=\"Turkey\">Turkey</option>
                <option value=\"Turkmenistan\">Turkmenistan</option>
                <option value=\"TurksandCaicosIslands\">Turks and Caicos Islands</option>
                <option value=\"Tuvalu\">Tuvalu</option>
                <option value=\"Uganda\">Uganda</option>
                <option value=\"Ukraine\">Ukraine</option>
                <option value=\"UnitedArabEmirates\">United Arab Emirates</option>
                <option value=\"UnitedKingdom\">United Kingdom</option>
                <option value=\"UnitedStates\">United States</option>
                <option value=\"UnitedStatesMinorOutlyingIslands\">United States Minor Outlying Islands</option>
                <option value=\"Uruguay\">Uruguay</option>
                <option value=\"Uzbekistan\">Uzbekistan</option>
                <option value=\"Vanuatu\">Vanuatu</option>
                <option value=\"Venezuela\">Venezuela</option>
                <option value=\"VietNam\">Viet Nam</option>
                <option value=\"VirginIslands,British\">Virgin Islands, British</option>
                <option value=\"VirginIslands,U.S.\">Virgin Islands, U.S.</option>
                <option value=\"WallisandFutuna\">Wallis and Futuna</option>
                <option value=\"WesternSahara\">Western Sahara</option>
                <option value=\"Yemen\">Yemen</option>
                <option value=\"Zambia\">Zambia</option>
                <option value=\"Zimbabwe\">Zimbabwe</option>
            </select><br><p>
            <?php echo $field_options['desc']; ?>
        </p> <br><br><br>
            Account Key &nbsp;&nbsp;<input type='text' name='acctkey' id="<?php echo esc_attr( $field_options['id'] ) . '_acctkey'; ?>">
        <br>
        <p>
            <?php echo $field_options['desc'] ; ?>
        </p>
            </form>
    <?php

}
function planet_advanced_section( $section ) {

    $section['planet'] = __( 'Planet');

    return $section;
}

function planet_config_logic()
{
    if ($_POST["country"] != "" && $_POST["acctkey"] != "")
 {
        $countrykey = array(

            $_POST["country"] => $_POST["acctkey"]

        );

    global $wpdb;
    $wpdb->query("UPDATE wp_options SET option_value=$countrykey WHERE option_id=586");
 }

}

$current_section = give_get_current_setting_section();
add_filter( 'give_get_sections_advanced', 'planet_advanced_section' );
add_action( 'give_save_settings_give_settings', 'planet_config_logic', 10, 2 );
if($current_section=='planet')
{
    add_filter('give_get_settings_advanced', 'plant_config_advanced_settings_display');
}

Save button not working , data not saved to database

  • 写回答

1条回答 默认 最新

  • douxiawei9318 2019-05-16 11:32
    关注

    You must use json_encode() or serialize() function to save the $countrykey array in database.

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度